模块  java.naming
软件包  javax.naming

Class Reference

  • 实现的所有接口
    SerializableCloneable
    已知直接子类:
    LinkRef

    public class Reference
    extends Object
    implements Cloneable, Serializable
    此类表示对在命名/目录系统外部找到的对象的引用。

    Reference提供了一种记录有关对象的地址信息的方法,这些对象本身并不直接绑定到命名/目录系统。

    Reference由一个有序的地址列表和有关被引用对象的类信息组成。 列表中的每个地址标识同一概念对象的通信端点。 “通信端点”是指示如何联系对象的信息。 例如,它可以是网络地址,本地机器上的存储器中的位置,同一机器上的另一个进程等。列表中的地址的顺序对于解释该引用的对象工厂可能是重要的。

    由于各种原因可能出现多个地址,例如复制或通过一个以上通信机制提供接口的对象。 地址从零开始编制索引。

    Reference还包含有助于创建此Reference引用的对象实例的信息。 它包含该对象的类名,以及用于创建对象的工厂的类名和位置。 类工厂位置是以空格分隔的URL列表,表示用于加载工厂的类路径。 当需要加载工厂类(或它依赖的任何类或资源)时,将使用每个URL(按顺序)尝试加载类。

    引用实例未与多个线程的并发访问同步。 需要同时访问单个引用的线程应在它们之间同步并提供必要的锁定。

    从以下版本开始:
    1.3
    另请参见:
    RefAddrStringRefAddrBinaryRefAddrSerialized 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”的对象的新引用,对象工厂的类名和位置以及对象的地址。
    • 字段详细信息

      • className

        protected String className
        包含此Reference引用的对象的类的完全限定名称。
        另请参见:
        Class.getName()
      • addrs

        protected Vector<RefAddr> addrs
        包含此Reference中包含的地址。 由构造函数初始化。
      • 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地址。
    • 方法详细信息

      • 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。
        重写:
        equalsObject
        参数
        obj - 要检查的可能为null的对象。
        结果
        如果obj等于此引用,则为true; 否则是假的。
        另请参见:
        Object.hashCode()HashMap
      • toString

        public String toString()
        生成此引用的字符串表示形式。 该字符串由此引用引用的类名以及每个地址的字符串表示形式组成。 此表示仅用于显示,不用于解析。
        重写:
        toStringObject
        结果
        此引用的非null字符串表示形式。
      • clone

        public Object clone()
        使用其类名称地址列表,类工厂名称和类工厂位置制作此引用的副本。 对新创建的副本的更改不会影响此引用,反之亦然。
        重写:
        cloneObject
        结果
        这个实例的克隆。
        另请参见:
        Cloneable