Module java.naming
Package javax.naming

Class Reference

java.lang.Object
javax.naming.Reference
所有已实现的接口:
Serializable, Cloneable
直接已知的子类:
LinkRef

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

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

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

多个地址可能出现的原因有很多,例如复制或对象通过多个通信机制提供接口。地址从零开始索引。

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

Reference实例不会针对多个线程的并发访问进行同步。需要同时访问单个Reference的线程应在它们之间同步并提供必要的锁定。

自:
1.3
参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Vector<RefAddr>
    包含此Reference中包含的地址。
    protected String
    包含用于创建此Reference引用的对象实例的工厂类的名称。
    protected String
    包含工厂类的位置。
    protected String
    包含此Reference引用的对象的类的完全限定名称。
  • Constructor Summary

    Constructors
    Constructor
    Description
    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'的对象构造一个新引用,包含对象的工厂的类名和位置,以及对象的地址。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(int posn, RefAddr addr)
    在索引posn处的地址列表中添加一个地址。
    void
    add(RefAddr addr)
    在地址列表的末尾添加一个地址。
    void
    clear()
    从此引用中删除所有地址。
    clone()
    使用其类名列表、地址和工厂类位置创建此引用的副本。
    boolean
    equals(Object obj)
    确定obj是否是具有与此引用相同地址(按相同顺序)的引用。
    get(int posn)
    检索索引posn处的地址。
    get(String addrType)
    检索具有地址类型'addrType'的第一个地址。
    getAll()
    检索此引用中地址的枚举。
    检索此引用引用的对象的类名。
    检索此引用引用的对象的工厂的位置。
    检索此引用引用的对象的工厂的类名。
    int
    计算此引用的哈希码。
    remove(int posn)
    从地址列表中删除索引posn处的地址。
    int
    size()
    检索此引用中地址的数量。
    生成此引用的字符串表示形式。

    Methods declared in class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • className

      protected String className
      包含此Reference引用的对象的类的完全限定名称。
      参见:
    • addrs

      protected Vector<RefAddr> addrs
      包含此Reference中包含的地址。由构造函数初始化。
    • classFactory

      protected String classFactory
      包含用于创建此Reference引用的对象实例的工厂类的名称。初始化为null。
    • classFactoryLocation

      protected String classFactoryLocation
      包含工厂类的位置。初始化为null。
  • Constructor Details

    • Reference

      public Reference(String className)
      为具有类名'className'的对象构造一个新引用。类工厂和类工厂位置设置为null。新创建的引用包含零个地址。
      参数:
      className - 此引用所指对象的非空类名。
    • Reference

      public Reference(String className, RefAddr addr)
      为具有类名'className'和地址的对象构造一个新引用。类工厂和类工厂位置设置为null。
      参数:
      className - 此引用所指对象的非空类名。
      addr - 对象的非空地址。
    • Reference

      public Reference(String className, String factory, String factoryLocation)
      为具有类名'className'的对象构造一个新引用,并包含对象的工厂的类名和位置。
      参数:
      className - 此引用所指对象的非空类名。
      factory - 对象的工厂的可能为空类名。
      factoryLocation - 从中加载工厂的可能为空位置(例如URL)。
      参见:
    • Reference

      public Reference(String className, RefAddr addr, String factory, String factoryLocation)
      为具有类名'className'的对象构造一个新引用,包含对象的工厂的类名和位置,以及对象的地址。
      参数:
      className - 此引用所指对象的非空类名。
      addr - 对象的非空地址。
      factory - 对象的工厂的可能为空类名。
      factoryLocation - 从中加载工厂的可能为空位置(例如URL)。
      参见:
  • Method Details

    • 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或更大的地址都将向上移动一个位置(远离索引0)。
      参数:
      posn - 要插入地址的列表的基于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;否则返回 false。
      参见:
    • hashCode

      public int hashCode()
      计算此引用的哈希码。哈希码是其地址的哈希码之和。
      覆盖:
      hashCode 在类 Object
      返回:
      作为 int 的此引用的哈希码。
      参见:
    • toString

      public String toString()
      生成此引用的字符串表示。字符串由此引用所指的类名和其每个地址的字符串表示组成。此表示仅用于显示,不可解析。
      覆盖:
      toString 在类 Object
      返回:
      此引用的非空字符串表示。
    • clone

      public Object clone()
      使用其类名列表、地址列表、类工厂名称和类工厂位置创建此引用的副本。对新创建的副本的更改不会影响此 Reference,反之亦然。
      覆盖:
      clone 在类 Object
      返回:
      此实例的克隆。
      参见: