- java.lang.Object
-
- javax.naming.Reference
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
- 已知直接子类:
-
LinkRef
public class Reference extends Object implements Cloneable, Serializable
此类表示对在命名/目录系统外部找到的对象的引用。引用提供了一种记录关于自身不直接绑定到命名/目录系统的对象的地址信息的方法。
A Reference由一个有序的地址列表和关于被引用对象的类信息组成。 列表中的每个地址标识同一概念对象的通信端点。 “通信端点”是指示如何联系对象的信息。 它可以是例如网络地址,本地机器上的存储器中的位置,在同一机器上的另一过程等。列表中的地址的顺序对于解释参考的对象工厂可能是重要的。
由于各种原因可能会出现多个地址,例如复制或通过多个通信机制提供接口的对象。 这些地址从零开始索引。
引用还包含有助于创建此引用引用的对象的实例的信息。 它包含该对象的类名,以及用于创建对象的工厂的类名和位置。 类工厂位置是一个空格分隔的URL表示代表用于加载工厂的类路径。 当需要加载工厂类(或其所依赖的任何类或资源)时,将使用每个URL(按顺序)尝试加载该类。
引用实例与多个线程的并发访问不同步。 需要同时访问单个引用的线程应该在它们之间同步并提供必要的锁定。
- 从以下版本开始:
- 1.3
- 另请参见:
-
RefAddr
,StringRefAddr
,BinaryRefAddr
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 protected Vector<RefAddr>
addrs
包含本参考文献中包含的地址。protected String
classFactory
包含用于创建此引用引用的对象的实例的工厂类的名称。protected String
classFactoryLocation
包含工厂类的位置。protected String
className
包含此引用引用的对象的类的完全限定名称。
-
构造方法摘要
构造方法 Constructor 描述 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”的对象,对象工厂的类名和位置以及对象的地址构造一个新引用。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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
包含此引用引用的对象的类的完全限定名称。- 另请参见:
-
Class.getName()
-
classFactory
protected String classFactory
包含用于创建此引用引用的对象的实例的工厂类的名称。 初始化为null。
-
classFactoryLocation
protected String classFactoryLocation
包含工厂类的位置。 初始化为null。
-
-
构造方法详细信息
-
Reference
public Reference(String className)
为类名为“className”的对象构造一个新的引用。 班级工厂和班级工厂的位置设置为空。 新创建的引用包含零地址。- 参数
-
className
- 此引用引用的对象的非空类名称。
-
Reference
public Reference(String className, RefAddr addr)
为类名为“className”的对象和地址构造一个新引用。 班级工厂和班级工厂的位置设置为空。- 参数
-
className
- 此引用引用的对象的非空类名称。 -
addr
- 对象的非空地址。
-
Reference
public Reference(String className, String factory, String factoryLocation)
为类名为“className”的对象以及对象工厂的类名和位置构造一个新引用。- 参数
-
className
- 此引用引用的对象的非空类名称。 -
factory
- 对象工厂的可能的空类名称。 -
factoryLocation
- 加载工厂可能为空的位置(例如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
- 此引用引用的对象的非空类名称。 -
factory
- 对象工厂的可能的空类名称。 -
factoryLocation
- 加载工厂可能为空的位置(例如URL) -
addr
- 对象的非空地址。 - 另请参见:
-
ObjectFactory
,NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
-
-
方法详细信息
-
getClassName
public String getClassName()
检索引用引用的对象的类名。- 结果
- 对象的非空完全限定类名。 (例如“java.lang.String”)
-
getFactoryClassName
public String getFactoryClassName()
检索此引用引用的对象的工厂类的名称。- 结果
- 工厂的可能为空的完全合格的类名。 (例如“java.lang.String”)
-
getFactoryClassLocation
public String getFactoryClassLocation()
检索此引用引用的对象的工厂位置。 如果它是一个代码库,那么它是一个有序的URL列表,用空格分隔,列出应该加载工厂类定义的位置。- 结果
- 可能为空的字符串,其中包含在工厂类中加载的位置。
-
get
public RefAddr get(String addrType)
检索地址类型为“addrType”的第一个地址。 String.compareTo()用于测试地址类型的相等性。- 参数
-
addrType
- 找到地址的非空地址类型。 - 结果
- 地址类型为'addrType'的本地址 如果没有这样的地址存在null。
-
get
public RefAddr get(int posn)
检索索引posn上的地址。- 参数
-
posn
- 要检索的地址的索引。 - 结果
- 在0的索引posn上的地址。 它必须在[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或更大的所有地址都从列表中移出1(远离索引0)。- 参数
-
posn
- 列表中0的索引插入addr。 -
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()检查地址。 除了具有相同的地址之外,“引用”还需要具有与此引用相同的类名。 不检查班级工厂和班级工厂的位置。 如果obj为null,则返回引用的实例,则返回null。- 重写:
-
equals
在Object
- 参数
-
obj
- 可能要查询的空对象。 - 结果
- 如果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()
生成此引用的字符串表示形式。 该字符串由此引用引用的类名以及每个地址的字符串表示形式组成。 此表示仅供显示且不被解析。
-
-