|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.naming
类 CompositeName
java.lang.Object javax.naming.CompositeName
- 所有已实现的接口:
- Serializable, Cloneable, Comparable<Object>, Name
此类表示一个复合名称,即一个跨多个名称空间组件名称的序列。每个组件都是一个取自命名系统名称空间的字符串名称。如果组件取自层次名称空间,则可以通过使用 CompoundName 类将该组件进一步解析成其原子部分。
复合名称的组件都已编号。带 N 个组件的复合名称的索引在 0 到 N(但不包括 N)的范围内变动。可将该范围写为 [0,N)。最重要的组件位于索引 0 处。空复合名称没有组件。
JNDI 复合名称语法
JNDI 定义了复合名称的标准字符串表示形式。此表示形式是复合名称组件从左到右的串联,并使用组件分隔符(正斜杠字符 (/))来分隔每个组件。JNDI 语法定义了以下元字符:- 转义符(反斜杠 \),
- 引用字符(单引号 (') 和双引号 (")),以及
- 组件分隔符(正斜杠字符 (/))。
在比较两个复合名称时,字符的大小写很重要。
前导组件分隔符(复合名称字符串以分隔符开始)表示一个前导空组件(由空字符串组成的组件)。尾部组件分隔符(复合名称以分隔符结束)表示一个尾部空组件。相邻的组件分隔符表示一个空组件。
复合名称示例
此表展示了一些复合名称的示例。每一行表示一个复合名称的字符串形式及其相应的结构形式 (CompositeName)。字符串名称 | CompositeName |
---|---|
"" | {} (the empty name == new CompositeName("") == new CompositeName()) |
"x" | {"x"} |
"x/y" | {"x", "y"} |
"x/" | {"x", ""} |
"/x" | {"", "x"} |
"/" | {""} |
"//" | {"", ""} |
"/x/" | {"", "x", ""} |
"x//y" | {"x", "", "y"} |
复合示例
以下是一些复合示例。右边的列展示组合字符串复合名称,左边的列展示组合相应的 CompositeName。注意,组合两个复合名称的字符串形式只需将其字符串形式串联在一起即可。字符串名称 | CompositeNames |
---|---|
"x/y" + "/" = x/y/ | {"x", "y"} + {""} = {"x", "y", ""} |
"" + "x" = "x" | {} + {"x"} = {"x"} |
"/" + "x" = "/x" | {""} + {"x"} = {"", "x"} |
"x" + "" + "" = "x" | {"x"} + {} + {} = {"x"} |
多线程访问
CompositeName 实例与并发多线程访问不同步。试图访问并修改 CompositeName 的多个线程应该锁定对象。- 从以下版本开始:
- 1.3
- 另请参见:
- 序列化表格
构造方法摘要 | |
---|---|
|
CompositeName() 构造一个新的空复合名称。 |
protected |
CompositeName(Enumeration<String> comps) 使用由 'comps' 指定的组件构造一个新的复合名称实例。 |
|
CompositeName(String n) 通过使用复合名称语法(从左到右,用斜杠分隔)解析字符串 n 来构造一个新的复合名称实例。 |
方法摘要 | |
---|---|
Name |
add(int posn, String comp) 在此复合名称中的指定位置添加单个组件。 |
Name |
add(String comp) 将单个组件添加到此复合名称的末尾。 |
Name |
addAll(int posn, Name n) 按顺序将复合名称的组件添加到此复合名称中的指定位置。 |
Name |
addAll(Name suffix) 按顺序将复合名称的组件添加到此复合名称的末尾。 |
Object |
clone() 生成此复合名称的副本。 |
int |
compareTo(Object obj) 比较此 CompositeName 与指定 Object 的顺序。 |
boolean |
endsWith(Name n) 确定某一复合名称是否是此复合名称的后缀。 |
boolean |
equals(Object obj) 确定两个复合名称是否相等。 |
String |
get(int posn) 检索此复合名称的组件。 |
Enumeration<String> |
getAll() 以字符串枚举的形式检索此复合名称的组件。 |
Name |
getPrefix(int posn) 创建一个复合名称,其组件由此复合名称中组件的前缀组成。 |
Name |
getSuffix(int posn) 创建一个复合名称,其组件由此复合名称中组件的后缀组成。 |
int |
hashCode() 计算此复合名称的哈希码。 |
boolean |
isEmpty() 确定此复合名称是否为空。 |
Object |
remove(int posn) 从此复合名称中删除一个组件。 |
int |
size() 检索此复合名称中的组件数。 |
boolean |
startsWith(Name n) 确定某一复合名称是否是此复合名称的前缀。 |
String |
toString() 生成此复合名称的字符串表示形式。 |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
CompositeName
protected CompositeName(Enumeration<String> comps)
-
使用由 'comps' 指定的组件构造一个新的复合名称实例。这个受保护的方法将由 CompositeName 的子类在重写一些方法(比如 clone()、getPrefix() 和 getSuffix())时使用。
- 参数:
-
comps
- 包含新复合名称组件的非 null 枚举。每个元素都属于 String 类。该枚举将被用来提取其元素。
CompositeName
public CompositeName(String n) throws InvalidNameException
-
通过使用复合名称语法(从左到右,用斜杠分隔)解析字符串 n 来构造一个新的复合名称实例。复合名称语法在类描述中有详细说明。
- 参数:
-
n
- 要解析的非 null 字符串。 - 抛出:
-
InvalidNameException
- 如果 n 的复合名称语法无效。
CompositeName
public CompositeName()
-
构造一个新的空复合名称。当在此类名称上调用
isEmpty()
时将返回 true。
方法详细信息 |
---|
toString
public String toString()
- 生成此复合名称的字符串表示形式。该字符串表示形式通过按顺序枚举复合名称的每个组件并用正斜杠字符分隔每个组件组成。根据 JNDI 语法(该语法在类描述中进行了说明)在必要处使用引用字符和转义字符。空组件用空字符串表示。 如此生成的字符串表示形式可以传递给 CompositeName 构造方法,以创建一个新的等效复合名称。
-
- 返回:
- 此复合名称的非 null 字符串表示形式。
equals
public boolean equals(Object obj)
- 确定两个复合名称是否相等。如果 obj 为 null 或者不是一个复合名称,则返回 false。如果一个复合名称中的每个组件都等于另一个复合名称中的相应组件,则两个复合名称相等。这暗示着两个复合名称有相同数量的组件,并且每个组件与另一个名称中相应组件的 equals() 测试都返回 true。
-
- 参数:
-
obj
- 要比较的可能为 null 的对象。 - 返回:
- 如果 obj 等于此复合名称,则返回 true,否则返回 false。
- 另请参见:
-
hashCode()
hashCode
public int hashCode()
- 计算此复合名称的哈希码。该哈希码是此复合名称各个组件哈希码的总和。
-
- 返回:
- 表示此名称的哈希码的 int。
- 另请参见:
-
equals(java.lang.Object)
compareTo
public int compareTo(Object obj)
-
比较此 CompositeName 与指定 Object 的顺序。根据此 Name 小于、等于还是大于指定 Object 分别返回负整数、零或正整数。
如果 obj 为 null 或者不是一个 CompositeName 实例,则抛出 ClassCastException。
关于这对两个复合名称相等性的意义,请参见 equals()。如果两个复合名称是相等的,则返回 0。
复合名称的排序遵从字符串比较的字典规则,并将此扩展到应用于复合名称中的所有组件。效果就像将所有组件按照指定的顺序排列起来,并在两个队列上应用字典规则。如果此复合名称“按字典顺序”小于 obj,则返回一个负数。如果此复合名称“按字典顺序”大于 obj,则返回一个正数。
-
- 指定者:
-
接口
Comparable<Object>
中的compareTo
- 指定者:
-
接口
Name
中的compareTo
-
- 参数:
-
obj
- 要与之比较的非 null 对象。 - 返回:
- 根据此 Name 小于、等于还是大于指定 Object 分别返回负整数、零或正整数。
- 抛出:
-
ClassCastException
- 如果 obj 不是 CompositeName。 - 另请参见:
-
Comparable.compareTo(Object)
clone
public Object clone()