- java.lang.Object
-
- javax.naming.Reference
-
- 实现的所有接口
-
Serializable
,Cloneable
- 已知直接子类:
-
LinkRef
public class Reference extends Object implements Cloneable, Serializable
此类表示对在命名/目录系统外部找到的对象的引用。Reference提供了一种记录有关对象的地址信息的方法,这些对象本身并不直接绑定到命名/目录系统。
Reference由一个有序的地址列表和有关被引用对象的类信息组成。 列表中的每个地址标识同一概念对象的通信端点。 “通信端点”是指示如何联系对象的信息。 例如,它可以是网络地址,本地机器上的存储器中的位置,同一机器上的另一个进程等。列表中的地址的顺序对于解释该引用的对象工厂可能是重要的。
由于各种原因可能出现多个地址,例如复制或通过一个以上通信机制提供接口的对象。 地址从零开始编制索引。
Reference还包含有助于创建此Reference引用的对象实例的信息。 它包含该对象的类名,以及用于创建对象的工厂的类名和位置。 类工厂位置是以空格分隔的URL列表,表示用于加载工厂的类路径。 当需要加载工厂类(或它依赖的任何类或资源)时,将使用每个URL(按顺序)尝试加载类。
引用实例未与多个线程的并发访问同步。 需要同时访问单个引用的线程应在它们之间同步并提供必要的锁定。
- 从以下版本开始:
- 1.3
- 另请参见:
-
RefAddr
,StringRefAddr
,BinaryRefAddr
, Serialized Form
-
-
字段汇总
字段 变量和类型 字段 描述 protected Vector<RefAddr>
addrs
包含此Reference中包含的地址。protected String
classFactory
包含工厂类的名称,用于创建此Reference引用的对象的实例。protected String
classFactoryLocation
包含工厂类的位置。protected String
className
包含此Reference引用的对象的类的完全限定名称。
-
构造方法摘要
构造方法 构造器 描述 Reference(String className)
为类名为“className”的对象构造一个新引用。Reference(String className, String factory, String factoryLocation)
构造具有类名“className”的对象的新引用,以及对象工厂的类名和位置。Reference(String className, RefAddr addr)
为类名为“className”的对象和地址构造一个新引用。Reference(String className, RefAddr addr, String factory, String factoryLocation)
构造具有类名“className”的对象的新引用,对象工厂的类名和位置以及对象的地址。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
add(int posn, RefAddr addr)
将地址添加到索引posn的地址列表中。void
add(RefAddr addr)
将地址添加到地址列表的末尾。void
clear()
删除此引用中的所有地址。Object
clone()
使用其类名称地址列表,类工厂名称和类工厂位置制作此引用的副本。boolean
equals(Object obj)
确定obj是否是与此引用具有相同地址(以相同顺序)的引用。RefAddr
get(int posn)
检索索引posn处的地址。RefAddr
get(String addrType)
检索地址类型为“addrType”的第一个地址。Enumeration<RefAddr>
getAll()
检索此引用中的地址枚举。String
getClassName()
检索此引用引用的对象的类名。String
getFactoryClassLocation()
检索此引用所引用的对象的工厂位置。String
getFactoryClassName()
检索此引用引用的对象的工厂的类名称。int
hashCode()
计算此引用的哈希码。Object
remove(int posn)
从地址列表中删除索引posn处的地址。int
size()
检索此引用中的地址数。String
toString()
生成此引用的字符串表示形式。
-
-
-
字段详细信息
-
className
protected String className
包含此Reference引用的对象的类的完全限定名称。- 另请参见:
-
Class.getName()
-
classFactory
protected String classFactory
包含工厂类的名称,用于创建此Reference引用的对象的实例。 初始化为null。
-
classFactoryLocation
protected String classFactoryLocation
包含工厂类的位置。 初始化为null。
-
-
构造方法详细信息
-
Reference
public Reference(String className)
为类名为“className”的对象构造一个新引用。 类工厂和类工厂位置设置为null。 新创建的引用包含零地址。- 参数
-
className
- 此引用引用的对象的非null类名。
-
Reference
public Reference(String className, RefAddr addr)
为类名为“className”的对象和地址构造一个新引用。 类工厂和类工厂位置设置为null。- 参数
-
className
- 此引用引用的对象的非null类名。 -
addr
- 对象的非null地址。
-
Reference
public Reference(String className, String factory, String factoryLocation)
构造具有类名“className”的对象的新引用,以及对象工厂的类名和位置。- 参数
-
className
- 此引用引用的对象的非null类名。 -
factory
- 对象工厂的可能为null的类名。 -
factoryLocation
- 加载工厂的可能为null的位置(例如URL) - 另请参见:
-
ObjectFactory
,NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
-
Reference
public Reference(String className, RefAddr addr, String factory, String factoryLocation)
构造具有类名“className”的对象的新引用,对象工厂的类名和位置以及对象的地址。- 参数
-
className
- 此引用引用的对象的非null类名。 -
factory
- 对象工厂的可能为null的类名。 -
factoryLocation
- 加载工厂的可能为null的位置(例如URL) -
addr
- 对象的非null地址。 - 另请参见:
-
ObjectFactory
,NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
-
-
方法详细信息
-
getClassName
public String getClassName()
检索此引用引用的对象的类名。- 结果
- 对象的非null完全限定类名。 (例如“java.lang.String”)
-
getFactoryClassName
public String getFactoryClassName()
检索此引用引用的对象的工厂的类名称。- 结果
- 工厂的可能为null的完全限定类名。 (例如“java.lang.String”)
-
getFactoryClassLocation
public String getFactoryClassLocation()
检索此引用所引用的对象的工厂位置。 如果它是一个代码库,那么它是一个有序的URL列表,用空格分隔,列出应该加载工厂类定义的位置。- 结果
- 可能为null的字符串,包含在工厂类中加载的位置。
-
get
public RefAddr get(String addrType)
检索地址类型为“addrType”的第一个地址。 String.compareTo()用于测试地址类型的相等性。- 参数
-
addrType
- 要查找其地址的非空地址类型。 - 结果
- 地址类型为“addrType”的此引用中的地址; 如果不存在这样的地址则为null。
-
get
public RefAddr get(int posn)
检索索引posn处的地址。- 参数
-
posn
- 要检索的地址的索引。 - 结果
- 基于0的索引处的地址。 它必须在[0,getAddressCount())范围内。
- 异常
-
ArrayIndexOutOfBoundsException
- 如果posn不在指定范围内。
-
getAll
public Enumeration<RefAddr> getAll()
检索此引用中的地址枚举。 在此引用中添加,更改或删除地址时,其对此枚举的影响未定义。- 结果
-
此引用中的地址(
RefAddr
)的非空枚举。 如果此引用的地址为零,则返回零元素的枚举。
-
size
public int size()
检索此引用中的地址数。- 结果
- 此参考中的非负数地址。
-
add
public void add(RefAddr addr)
将地址添加到地址列表的末尾。- 参数
-
addr
- 要添加的非空地址。
-
add
public void add(int posn, RefAddr addr)
将地址添加到索引posn的地址列表中。 索引posn或更大的所有地址都在列表中向上移动一个(远离索引0)。- 参数
-
posn
- 要插入addr的列表的从0开始的索引。 -
addr
- 要添加的非空地址。 - 异常
-
ArrayIndexOutOfBoundsException
- 如果posn不在指定范围内。
-
remove
public Object remove(int posn)
从地址列表中删除索引posn处的地址。 索引大于posn的所有地址都在列表中向下移动一个(朝向索引0)。- 参数
-
posn
- 要删除的地址的从0开始的索引。 - 结果
- 地址已删除。
- 异常
-
ArrayIndexOutOfBoundsException
- 如果posn不在指定范围内。
-
clear
public void clear()
删除此引用中的所有地址。
-
equals
public boolean equals(Object obj)
确定obj是否是与此引用具有相同地址(以相同顺序)的引用。 使用RefAddr.equals()检查地址。 除了具有相同的地址外,Reference还需要与此引用具有相同的类名。 不检查类工厂和类工厂位置。 如果obj为null或不是Reference的实例,则返回null。- 重写:
-
equals
类Object
- 参数
-
obj
- 要检查的可能为null的对象。 - 结果
- 如果obj等于此引用,则为true; 否则是假的。
- 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
计算此引用的哈希码。 哈希码是其地址的哈希码的总和。- 重写:
-
hashCode
类Object
- 结果
- 此引用的哈希码作为int。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String toString()
生成此引用的字符串表示形式。 该字符串由此引用引用的类名以及每个地址的字符串表示形式组成。 此表示仅用于显示,不用于解析。
-
-