java.lang.Object
javax.naming.Reference
- 所有已实现的接口:
-
Serializable
,Cloneable
- 直接已知的子类:
-
LinkRef
该类表示对在命名/目录系统之外找到的对象的引用。
Reference提供了一种记录关于对象的地址信息的方式,这些对象本身并未直接绑定到命名/目录系统。
Reference由关于被引用对象的地址和类信息的有序列表组成。列表中的每个地址标识了同一概念对象的通信端点。"通信端点"是指示如何联系对象的信息。例如,它可以是网络地址,本地机器上的内存位置,同一机器上的另一个进程等。列表中地址的顺序对于解释引用的对象工厂可能是重要的。
多个地址可能出现的原因有很多,例如复制或对象通过多个通信机制提供接口。地址从零开始索引。
Reference还包含有助于创建此Reference引用的对象实例的信息。它包含该对象的类名,以及用于创建对象的类名和工厂的位置。类工厂位置是一个用于加载工厂的类路径的空格分隔的URL列表。当需要加载工厂类(或其依赖的任何类或资源)时,将使用每个URL(按顺序)尝试加载类。
Reference实例不会针对多个线程的并发访问进行同步。需要同时访问单个Reference的线程应在它们之间同步并提供必要的锁定。
- 自:
- 1.3
- 参见:
-
Field Summary
-
Constructor Summary
ConstructorDescription为具有类名'className'的对象构造一个新引用。为具有类名'className'的对象构造一个新引用,并包含对象的工厂的类名和位置。为具有类名'className'和地址的对象构造一个新引用。为具有类名'className'的对象构造一个新引用,包含对象的工厂的类名和位置,以及对象的地址。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
在索引posn处的地址列表中添加一个地址。void
在地址列表的末尾添加一个地址。void
clear()
从此引用中删除所有地址。clone()
使用其类名列表、地址和工厂类位置创建此引用的副本。boolean
确定obj是否是具有与此引用相同地址(按相同顺序)的引用。get
(int posn) 检索索引posn处的地址。检索具有地址类型'addrType'的第一个地址。getAll()
检索此引用中地址的枚举。检索此引用引用的对象的类名。检索此引用引用的对象的工厂的位置。检索此引用引用的对象的工厂的类名。int
hashCode()
计算此引用的哈希码。remove
(int posn) 从地址列表中删除索引posn处的地址。int
size()
检索此引用中地址的数量。toString()
生成此引用的字符串表示形式。
-
Field Details
-
className
包含此Reference引用的对象的类的完全限定名称。- 参见:
-
addrs
包含此Reference中包含的地址。由构造函数初始化。 -
classFactory
包含用于创建此Reference引用的对象实例的工厂类的名称。初始化为null。 -
classFactoryLocation
包含工厂类的位置。初始化为null。
-
-
Constructor Details
-
Reference
为具有类名'className'的对象构造一个新引用。类工厂和类工厂位置设置为null。新创建的引用包含零个地址。- 参数:
-
className
- 此引用所指对象的非空类名。
-
Reference
为具有类名'className'和地址的对象构造一个新引用。类工厂和类工厂位置设置为null。- 参数:
-
className
- 此引用所指对象的非空类名。 -
addr
- 对象的非空地址。
-
Reference
为具有类名'className'的对象构造一个新引用,并包含对象的工厂的类名和位置。- 参数:
-
className
- 此引用所指对象的非空类名。 -
factory
- 对象的工厂的可能为空类名。 -
factoryLocation
- 从中加载工厂的可能为空位置(例如URL)。 - 参见:
-
Reference
为具有类名'className'的对象构造一个新引用,包含对象的工厂的类名和位置,以及对象的地址。- 参数:
-
className
- 此引用所指对象的非空类名。 -
addr
- 对象的非空地址。 -
factory
- 对象的工厂的可能为空类名。 -
factoryLocation
- 从中加载工厂的可能为空位置(例如URL)。 - 参见:
-
-
Method Details
-
getClassName
检索此引用所指对象的类名。- 返回:
- 对象的非空完全限定类名。 (例如,"java.lang.String")
-
getFactoryClassName
检索此引用所指对象的工厂的类名。- 返回:
- 对象的工厂的可能为空完全限定类名。 (例如,"java.lang.String")
-
getFactoryClassLocation
检索此引用所指对象的工厂的位置。如果是代码库,则是一个由空格分隔的URL有序列表,列出应从中加载工厂类定义的位置。- 返回:
- 包含加载工厂类的位置的可能为空字符串。
-
get
检索具有地址类型'addrType'的第一个地址。使用String.compareTo()来测试地址类型的相等性。- 参数:
-
addrType
- 要查找地址的非空地址类型。 - 返回:
- 具有地址类型'addrType'的此引用中的地址;如果不存在此类地址,则返回null。
-
get
检索索引posn处的地址。- 参数:
-
posn
- 要检索地址的索引。 - 返回:
- 0为基础的索引posn处的地址。它必须在[0,getAddressCount())范围内。
- 抛出:
-
ArrayIndexOutOfBoundsException
- 如果posn不在指定范围内。
-
getAll
检索此引用中地址的枚举。当向此引用添加、更改或删除地址时,其对此枚举的影响是未定义的。- 返回:
-
包含此引用中地址(
RefAddr
)的非空枚举。如果此引用没有地址,则返回一个具有零个元素的枚举。
-
size
public int size()检索此引用中地址的数量。- 返回:
- 此引用中地址的非负数。
-
add
在地址列表的末尾添加一个地址。- 参数:
-
addr
- 要添加的非空地址。
-
add
在索引posn处的地址列表中添加一个地址。所有索引posn或更大的地址都将向上移动一个位置(远离索引0)。- 参数:
-
posn
- 要插入地址的列表的基于0的索引。 -
addr
- 要添加的非空地址。 - 抛出:
-
ArrayIndexOutOfBoundsException
- 如果 posn 不在指定范围内。
-
remove
从地址列表中删除索引为 posn 的地址。大于 posn 的索引的所有地址都向列表的前一个位置移动一位(朝向索引 0)。- 参数:
-
posn
- 要删除的地址的基于0的索引。 - 返回:
- 被移除的地址。
- 抛出:
-
ArrayIndexOutOfBoundsException
- 如果 posn 不在指定范围内。
-
clear
public void clear()删除此引用中的所有地址。 -
equals
确定 obj 是否是具有与此引用相同地址(按相同顺序)的引用。使用 RefAddr.equals() 检查地址。除了具有相同地址外,Reference 还需要具有与此引用相同的类名。不会检查类工厂和类工厂位置。如果 obj 为 null 或不是 Reference 的实例,则返回 null。 -
hashCode
public int hashCode()计算此引用的哈希码。哈希码是其地址的哈希码之和。 -
toString
生成此引用的字符串表示。字符串由此引用所指的类名和其每个地址的字符串表示组成。此表示仅用于显示,不可解析。 -
clone
使用其类名列表、地址列表、类工厂名称和类工厂位置创建此引用的副本。对新创建的副本的更改不会影响此 Reference,反之亦然。
-