public class MBeanInfo extends Object implements Cloneable, Serializable, DescriptorRead
描述MBean暴露的管理界面; 即可用于管理操作的一组属性和操作。 这个类的实例是不可变的。 子类可能是可变的,但不建议这样做。
通常,任何给定的MBean的MBeanInfo
在该MBean的生命周期内不会改变。 动态MBean可以改变他们MBeanInfo
,并在这种情况下,建议他们发出Notification
与type的"jmx.mbean.info.changed"
和userData这是新MBeanInfo
。 这不是必需的,但是为MBean的客户端提供了传统的方式来发现更改。 又见immutableInfo个infoTimeout在田里MBeanInfo
Descriptor
。
所述的内容MBeanInfo
用于动态MBean由其确定getMBeanInfo()
方法。 这包括Open MBeans和Model MBean,它们是动态MBeans的种类。
所述的内容MBeanInfo
为Standard MBean由MBean服务器确定如下:
getClassName()
返回MBean对象的Java类名; getConstructors()
返回该对象中所有公共构造函数的列表; getAttributes()
返回其存在是从的MBean接口的存在推导出的所有属性的列表中getName
, isName
,或setName
方法符合该约定标准Mbean; getOperations()
返回MBean接口中不表示属性的所有方法的列表; getNotifications()
返回一个空数组,如果MBean没有实现NotificationBroadcaster
接口,否则调用NotificationBroadcaster.getNotificationInfo()
就可以了; getDescriptor()
返回包含MBean界面中任何描述符注释的内容的描述符(参见@DescriptorKey
)。 getDescription()
返回的描述和所包含的属性和操作的说明未指定。
在剩下的细节MBeanInfo
未指定为Standard MBean。 这包括任何包含的构造函数和通知的描述; 构造函数和操作的参数名称; 以及构造函数参数的描述。
Constructor and Description |
---|
MBeanInfo(String className, String description, MBeanAttributeInfo[] attributes, MBeanConstructorInfo[] constructors, MBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications)
构造一个
MBeanInfo 。
|
MBeanInfo(String className, String description, MBeanAttributeInfo[] attributes, MBeanConstructorInfo[] constructors, MBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications, Descriptor descriptor)
构造一个
MBeanInfo 。
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
返回此实例的浅克隆。
|
boolean |
equals(Object o)
将此MBeanInfo与另一个进行比较。
|
MBeanAttributeInfo[] |
getAttributes()
返回暴露给管理的属性列表。
|
String |
getClassName()
返回此
MBeanInfo 的MBean的Java类的名称。
|
MBeanConstructorInfo[] |
getConstructors()
返回MBean的公共构造函数的列表。
|
String |
getDescription()
返回MBean的可读描述。
|
Descriptor |
getDescriptor()
获取此MBeanInfo的描述符。
|
MBeanNotificationInfo[] |
getNotifications()
返回MBean发出的通知列表。
|
MBeanOperationInfo[] |
getOperations()
返回MBean的操作列表。
|
int |
hashCode()
返回对象的哈希码值。
|
String |
toString()
返回对象的字符串表示形式。
|
public MBeanInfo(String className, String description, MBeanAttributeInfo[] attributes, MBeanConstructorInfo[] constructors, MBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications) throws IllegalArgumentException
MBeanInfo
。
className
- 此MBeanInfo
的MBean的Java类的名称。
此值可能是任何语法上合法的Java类名称。
它不必是MBean服务器或MBean的ClassLoader已知的Java类。
如果它是MBean的ClassLoader已知的Java类,则推荐但不要求该类的公共方法包括将出现在实现此MBeanInfo中的属性和操作的标准MBean中的那些方法。
description
- MBean的可读描述(可选)。
attributes
- MBean的暴露属性列表。
这可能是null,具有与零长度数组相同的效果。
constructors
- MBean的公共构造函数列表。
这可能是null,具有与零长度数组相同的效果。
operations
- MBean的操作列表。
这可能是null,具有与零长度数组相同的效果。
notifications
- 发出的通知列表。
这可能是null,具有与零长度数组相同的效果。
IllegalArgumentException
public MBeanInfo(String className, String description, MBeanAttributeInfo[] attributes, MBeanConstructorInfo[] constructors, MBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications, Descriptor descriptor) throws IllegalArgumentException
MBeanInfo
。
className
- 由此MBeanInfo
的MBean的Java类的名称。
此值可能是任何语法上合法的Java类名称。
它不必是MBean服务器或MBean的ClassLoader已知的Java类。
如果它是MBean的ClassLoader已知的Java类,则推荐但不要求该类的公共方法包括将出现在实现此MBeanInfo中的属性和操作的标准MBean中的那些方法。
description
- MBean的可读描述(可选)。
attributes
- MBean的暴露属性列表。
这可能是null,具有与零长度数组相同的效果。
constructors
- MBean的公共构造函数列表。
这可能是null,具有与零长度数组相同的效果。
operations
- MBean的操作列表。
这可能是null,具有与零长度数组相同的效果。
notifications
- 发出的通知列表。
这可能是null,具有与零长度数组相同的效果。
descriptor
- MBean的描述符。
这可能是空的,这相当于空描述符。
IllegalArgumentException
public Object clone()
返回此实例的浅克隆。 该克隆通过简单地调用super.clone()获得,从而调用由Object.clone()实现的默认本机浅克隆机制 。 没有更深入地克隆任何内部领域。
由于这个类是不可变的,所以克隆方法主要是对子类感兴趣的。
public String getClassName()
MBeanInfo
的MBean的Java类的名称。
public String getDescription()
public MBeanAttributeInfo[] getAttributes()
MBeanAttributeInfo
对象描述。
返回的数组是内部数组的浅拷贝,这意味着它是对MBeanAttributeInfo
对象的引用的内部数组的副本,但是每个MBeanAttributeInfo
对象都不被复制。
MBeanAttributeInfo
对象。
public MBeanOperationInfo[] getOperations()
MBeanOperationInfo
对象描述。
返回的数组是内部数组的浅层副本,这意味着它是对MBeanOperationInfo
对象的引用的内部数组的副本,但是每个MBeanOperationInfo
对象都不被复制。
MBeanOperationInfo
对象。
public MBeanConstructorInfo[] getConstructors()
返回MBean的公共构造函数的列表。 每个构造函数由MBeanConstructorInfo
对象描述。
返回的数组是内部数组的浅拷贝,这意味着它是对MBeanConstructorInfo
对象的引用的内部数组的副本,但是每个MBeanConstructorInfo
对象都不被复制。
返回的列表不一定是详尽无遗的。 也就是说,MBean可能有一个不在列表中的公共构造函数。 在这种情况下,MBean服务器可以使用该构造函数构造此MBean类的另一个实例,即使这里没有列出。
MBeanConstructorInfo
对象。
public MBeanNotificationInfo[] getNotifications()
MBeanNotificationInfo
对象描述。
返回的数组是内部数组的浅拷贝,这意味着它是对MBeanNotificationInfo
对象的引用的内部数组的副本,但是每个MBeanNotificationInfo
对象都不被复制。
MBeanNotificationInfo
对象。
public Descriptor getDescriptor()
getDescriptor
在界面
DescriptorRead
public String toString()
Object
复制
toString
方法返回一个“textually代表”这个对象的字符串。
结果应该是一个简明扼要的表达,容易让人阅读。
建议所有子类覆盖此方法。
该toString
类方法Object
返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串@
”和对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode())
public boolean equals(Object o)
将此MBeanInfo与另一个进行比较。 两个MBeanInfo的对象是相同的,当且仅当他们返回相等值getClassName()
,为getDescription()
,并为getDescriptor()
,以及由两个对象为返回的数组getAttributes()
, getOperations()
, getConstructors()
和getNotifications()
是两两相等。 这里“等于”是指Object.equals(Object)
,不是身份。
如果两个MBeanInfo对象在其中一个数组中返回相同的值,但是以不同的顺序返回,则它们不相等。
equals
在
Object
o
- 要比较的对象。
o
是根据上述规则等于此的MBeanInfo,则为true。
Object.hashCode()
, HashMap
public int hashCode()
Object
HashMap
提供的那样 。
hashCode
的总合同是:
hashCode
方法必须始终返回相同的整数,前提是对对象的equals
比较中没有使用的信息进行修改。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。 equals(Object)
方法两个对象相等,则在两个对象中的每个对象上调用hashCode
方法必须产生相同的整数结果。 Object.equals(java.lang.Object)
方法不相等,那么在两个对象中的每个对象上调用hashCode
方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。 尽可能多的合理实用,由类Object
定义的hashCode方法确实为不同对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java的编程语言不需要此实现技术。)
hashCode
在
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)