|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.management
类 ObjectName
java.lang.Object javax.management.ObjectName
- 所有已实现的接口:
- Serializable, QueryExp
-
public class ObjectName
- extends Object
- implements QueryExp, Serializable
表示 MBean 的对象名,或者能够与多个 MBean 名相匹配的模式。此类的实例是不可变的。
可使用此类的实例表示:
- 对象名
- 查询上下文中的对象名模式
由两部分(域和键属性)组成的对象名。
域 是一个不包括冒号字符 (:
) 的由字符组成的字符串。
如果域包括至少一个通配符星号 (*
) 或问号 (?
),则该对象名就是一个模式。星号匹配任意零或多个字符的序列,而问号则匹配任意单个字符。
如果域为空,则由 MBean 服务器(在其中使用 ObjectName)的默认域 在特定的上下文中替换它。
键属性 是一个无序的键和关联值的集合。
每个键 都是一个由字符组成的非空字符串,不可以包含任何逗号 (,
)、等号 (=
)、冒号、星号或问号字符。在一个给定的 ObjectName 中同一个键不能出现两次。
每个与键关联的值 都是由字符组成的字符串,或者由引号括起来或者不括起来。
无引号值 可能是一个空的字符串,不包含任意逗号、等号、冒号、引号、星号或问号字符。
有引号值 由一个引号 ("
),后跟可能为空的字符串,然后是另一个引号所组成。在字符串内,反斜线 (\
) 具有特殊的含义。其后面必须为下列某个字符:
- 另一个反斜线。第二个反斜线不具有特殊的含义,两个字符表示单个反斜线。
- 字符 'n'。这两个字符表示新行(Java 中的 '\n')。 \Z
- 引号。这两个字符表示一个引号,并且不将该引号视为有引号值的终止。为了使有引号值有效,必须有结束的闭合引号。
- 问号 (?) 或星号 (*)。这两个字符分别表示一个问号或一个星号。
引号、问号或星号可能不出现在有引号值内,但紧跟在奇数个连续反斜线后的情况除外。
括住有引号值的引号和该值内的所有反斜线都被视为该值的一部分。
ObjectName 可能是一种属性模式。在这种情况下,它可以有零个或多个键和关联值。它与非模式的 ObjectName 匹配,这种 ObjectName 的域与之匹配并且包含相同的键和关联值,并可能包括其他键和值。
如果某个 ObjectName 的域包含通配符或者 ObjectName 是一个属性模式,则该 ObjectName 是一个模式。
如果某个 ObjectName 不是一个模式,则它必须至少包含一个键及其关联值。
按顺序使用下列元素可将 ObjectName 写作一个 String:
- 域。
- 一个冒号 (
:
)。 - 如下定义的键属性列表。
写为 String 的键属性列表是一个逗号分隔的元素列表。每个元素都是一个星号或一个键属性。键属性由键、等号 (=
) 和关联值所组成。
键属性列表中最多只能有一个元素为星号。如果键属性列表包含星号元素,则该 ObjectName 是一个属性模式。
在表示 ObjectName 的 String 中,空格没有任何特殊含意。例如,String:
domain: key1 = value1 , key2 = value2表示具有两个键的 ObjectName。每个键的名字包含 6 个字符,其中第一个和最后一个都是空格。与键
" key1 "
相关联的值同样以空格开头和结尾。
除了上述提及的字符限制外,ObjectName 的任何部分都不能包含新行符 ('\n'
),无论这些部分是域、键还是值(无引号值和有引号值)。可使用序列 \n
将新行符表示为有引号值。
不管使用何种构造方法构建 ObjectName,关于特殊字符和引号的规则都适用。
为了避免不同供应商所提供的 MBean 之间出现冲突,一个有用的约定是,域名由指定该 MBean 的组织的反向 DNS 名开始,后跟一个句点和一个字符串,由该组织决定该字符串的解释。例如,由 Sun Microsystems Inc.(DNS 名是 sun.com
)所指定的 MBean 将有 com.sun.MyDomain
这样的域。这基本上与 Java 语言包名的约定相同。
- 从以下版本开始:
- 1.5
- 另请参见:
- 序列化表格
构造方法摘要 | |
---|---|
ObjectName(String name) 根据给定的字符串构造一个对象名。 |
|
ObjectName(String domain, Hashtable table) 构造一个对象名,它具有根据哈希表所得到的多个键属性。 |
|
ObjectName(String domain, String key, String value) 构造只具有一个键属性的对象名。 |
方法摘要 | |
---|---|
boolean |
apply(ObjectName name) 测试此 ObjectName(可以是一个模式)是否与另一个 ObjectName 匹配。 |
boolean |
equals(Object object) 比较当前的对象名与另一个对象名是否相等。 |
String |
getCanonicalKeyPropertyListString() 返回键属性列表的字符串表示形式,其中键属性按词汇顺序排序。 |
String |
getCanonicalName() 返回该名称的规范形式;也就是说,一种字符串表示形式,其中属性按词汇顺序排序。 |
String |
getDomain() 返回域部分。 |
static ObjectName |
getInstance(ObjectName name) 返回 ObjectName 的实例,该 ObjectName 可用于任何可使用给定对象的地方。 |
static ObjectName |
getInstance(String name) 返回 ObjectName 的实例,该 ObjectName 可用于任何使用 new ObjectName(name) 获得的对象可用的地方。 |
static ObjectName |
getInstance(String domain, Hashtable table) 返回 ObjectName 的实例,该 ObjectName 可用于任何使用 new ObjectName(domain, table) 获得的对象可用的地方。 |
static ObjectName |
getInstance(String domain, String key, String value) 返回 ObjectName 的实例,该 ObjectName 可用于任何使用 new ObjectName(domain, key, value) 获得的对象可以使用的地方。 |
String |
getKeyProperty(String property) 获得与键属性中某个键相关联的值。 |
Hashtable |
getKeyPropertyList() 以哈希表的形式返回键属性。 |
String |
getKeyPropertyListString() 返回创建时所指定的键属性列表的字符串表示形式。 |
int |
hashCode() 返回此 ObjectName 的哈希码。 |
boolean |
isDomainPattern() 根据对象名的域部分检查它是否为一个模式。 |
boolean |
isPattern() 检查该对象名是否为一个模式。 |
boolean |
isPropertyPattern() 根据对象名的键属性检查它是否为一个模式。 |
static String |
quote(String s) 返回给定 String 的有引号形式,使之适合于包含在 ObjectName 中。 |
void |
setMBeanServer(MBeanServer mbs) 设置将在其上执行查询的 MBean 服务器。 |
String |
toString() 返回该对象名的字符串表示形式。 |
static String |
unquote(String q) 返回给定 String 的无引号形式,如果 q 是 quote(s) 所返回的 String,则 unquote(q).equals(s) 。 |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
ObjectName
public ObjectName(String name) throws MalformedObjectNameException, NullPointerException
-
根据给定的字符串构造一个对象名。
- 参数:
-
name
- 对象名的字符串表示形式。 - 抛出:
-
MalformedObjectNameException
- 如果作为参数传递的字符串格式不正确。 -
NullPointerException
- 如果name
参数为 null。
ObjectName
public ObjectName(String domain, String key, String value) throws MalformedObjectNameException, NullPointerException
-
构造只具有一个键属性的对象名。
- 参数:
-
domain
- 对象名的域部分。 -
key
- 对象名键属性中的属性。 -
value
- 对象名键属性中的值。 - 抛出:
-
MalformedObjectNameException
- 如果domain
、key
或value
包含非法字符,如果value
未遵循有关引号使用的规则。 -
NullPointerException
- 如果某个参数为 null。
ObjectName
public ObjectName(String domain, Hashtable table) throws MalformedObjectNameException, NullPointerException
-
构造一个对象名,它具有根据哈希表所得到的多个键属性。
- 参数:
-
domain
- 对象名的域部分。 -
table
- 包含一个或多个键属性的哈希表。表中每项的键都是对象名中键属性的键。表中的关联值是对象名中的关联值。 - 抛出:
-
MalformedObjectNameException
- 如果domain
包含非法字符,或者table
中的某个键或值包含非法字符,或者table
中的某个值未遵循有关引号使用的规则。 -
NullPointerException
- 如果某个参数为 null。
方法详细信息 |
---|
getInstance
public static ObjectName getInstance(String name) throws MalformedObjectNameException, NullPointerException
-
返回 ObjectName 的实例,该 ObjectName 可用于任何使用
new ObjectName(name)
获得的对象可用的地方。返回的对象可以是 ObjectName 的子类。使用相同的参数调用此方法两次可能会返回相同的对象,或者两个相等但是不同的对象。 -
-
- 参数:
-
name
- 对象名的字符串表示形式。 - 返回:
- 与给定 String 相对应的 ObjectName。
- 抛出:
-
MalformedObjectNameException
- 如果作为参数所传递的字符串格式不正确。 -
NullPointerException
- 如果name
参数为 null。
getInstance
public static ObjectName getInstance(String domain, String key, String value) throws MalformedObjectNameException, NullPointerException
-
返回 ObjectName 的实例,该 ObjectName 可用于任何使用
new ObjectName(domain, key, value)
获得的对象可以使用的地方。返回的对象可以是 ObjectName 的子类。使用相同的参数调用此方法两次可能会返回相同的对象,或者两个相等但是不同的对象。 -
-
- 参数:
-
domain
- 对象名的域部分。 -
key
- 对象名键属性中的属性。 -
value
- 对象名键属性中的值。 - 返回:
- 与给定域、键和值相对应的 ObjectName。
- 抛出:
-
MalformedObjectNameException
- 如果domain
、key
或value
包含非法字符,如果value
未遵循有关引号使用的规则。 -
NullPointerException
- 如果某个参数为 null。
getInstance
public static ObjectName getInstance(String domain, Hashtable table) throws MalformedObjectNameException, NullPointerException
-
返回 ObjectName 的实例,该 ObjectName 可用于任何使用
new ObjectName(domain, table)
获得的对象可用的地方。返回的对象可以是 ObjectName 的子类。使用相同的参数调用此方法两次可能会返回相同的对象,或者两个相等但是不同的对象。 -
-
- 参数:
-
domain
- 对象名的域部分。 -
table
- 包含一个或多个键属性的哈希表。表中每项的键都是对象名中键属性的键。表中的关联值是对象名中的关联值。 - 返回:
- 与给定域和键映射关系相对应的 ObjectName。
- 抛出:
-
MalformedObjectNameException
- 如果domain
包含非法字符,或者table
中的某个键或值包含非法字符,或者table
中的某个值未遵循有关引号使用的规则。 -
NullPointerException
- 如果某个参数为 null。
getInstance
public static ObjectName getInstance(ObjectName name) throws NullPointerException
-
返回 ObjectName 的实例,该 ObjectName 可用于任何可使用给定对象的地方。返回的对象可以是 ObjectName 的子类。如果
name
是 ObjectName 子类的名称,则无法保证返回的对象是同一个类的。返回的值可能与
name
相同,也可能不相同。使用相同的参数调用此方法两次可能会返回相同的对象,或者两个相等但是不同的对象。因为 ObjectName 是不可变的,所以制作 ObjectName 的副本通常没有用。此方法的主要用途是为了防止恶意的调用方,它可能向敏感代码中传递具有可疑行为的子类实例。这种代码可以调用此方法来获得一个已知没有可疑行为的 ObjectName。
-
-
- 参数:
-
name
- ObjectName 类或子类的一个实例 - 返回:
-
ObjectName 或已知具有相同语义的子类的实例。如果
name
服从 ObjectName 的语义,则返回的对象等于(尽管不必相同)name
。 - 抛出:
-
NullPointerException
- 如果name
为 null。
isPattern
public boolean isPattern()
- 检查该对象名是否为一个模式。如果某个对象名的域包含通配符或者它是一个属性模式,则该对象名是一个模式。
-
-
- 返回:
- 如果该名称是一个模式,则返回 true;否则返回 false。