所有类


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 的无引号形式,如果 qquote(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 - 如果 domainkeyvalue 包含非法字符,如果 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 - 如果 domainkeyvalue 包含非法字符,如果 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。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部