- java.lang.Object
-
- javax.management.MBeanInfo
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
,DescriptorRead
- 已知直接子类:
-
ModelMBeanInfoSupport
,OpenMBeanInfoSupport
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
。动态MBean的
MBeanInfo
的内容由其getMBeanInfo()
方法确定。 这包括Open MBeans和Model MBean,它们是动态MBeans的种类。标准MBean的
MBeanInfo
的内容由MBean服务器确定如下:-
getClassName()
返回MBean对象的Java类名称; -
getConstructors()
返回该对象中所有公共构造函数的列表; -
getAttributes()
返回其存在是从的MBean接口的存在推导出的所有属性的列表中getName
,isName
,或setName
方法符合该约定标准Mbean; -
getOperations()
返回MBean接口中不表示属性的所有方法的列表; -
getNotifications()
返回一个空数组,如果MBean没有实现NotificationBroadcaster
接口,否则调用NotificationBroadcaster.getNotificationInfo()
的结果就可以了; -
getDescriptor()
返回包含MBean界面中任何描述符注释的内容的描述符(参见@DescriptorKey
)。
由
getDescription()
返回的描述和所包含的属性和操作的说明未指定。未指定标准MBean的
MBeanInfo
的其余详细信息。 这包括任何包含的构造函数和通知的描述; 构造函数和操作的参数名称; 以及构造函数参数的描述。- 从以下版本开始:
- 1.5
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 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 方法 描述 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()
返回对象的字符串表示形式。
-
-
-
构造方法详细信息
-
MBeanInfo
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
-
MBeanInfo
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
- 从以下版本开始:
- 1.6
-
-
方法详细信息
-
clone
public Object clone()
返回此实例的浅克隆。 该克隆通过简单地调用
super.clone()
获得,从而调用由Object.clone()
实现的默认原生浅克隆机制。 没有更深入地克隆任何内部领域。由于这个类是不可变的,所以克隆方法主要是对子类感兴趣的。
-
getClassName
public String getClassName()
返回此MBeanInfo
描述的MBean的Java类的名称。- 结果
- 类名。
-
getDescription
public String getDescription()
返回MBean的可读描述。- 结果
- 说明。
-
getAttributes
public MBeanAttributeInfo[] getAttributes()
返回暴露给管理的属性列表。 每个属性由一个MBeanAttributeInfo
对象描述。 返回的数组是内部数组,这意味着它是对引用的一个内部数组的副本的浅表副本MBeanAttributeInfo
对象,但是,每个引用MBeanAttributeInfo
对象不被复制。- 结果
-
一组
MBeanAttributeInfo
对象。
-
getOperations
public MBeanOperationInfo[] getOperations()
返回MBean的操作列表。 每个操作由一个MBeanOperationInfo
对象描述。 返回的数组是内部数组,这意味着它是对引用的一个内部数组的副本的浅表副本MBeanOperationInfo
对象,但是,每个引用MBeanOperationInfo
对象不被复制。- 结果
-
一组
MBeanOperationInfo
对象。
-
getConstructors
public MBeanConstructorInfo[] getConstructors()
返回MBean的公共构造函数的列表。 每个构造函数由一个
MBeanConstructorInfo
对象描述。返回的数组是内部数组,这意味着它是对引用的一个内部数组的副本的浅表副本
MBeanConstructorInfo
对象,但是,每个引用MBeanConstructorInfo
对象不被复制。返回的列表不一定是详尽无遗的。 也就是说,MBean可能有一个不在列表中的公共构造函数。 在这种情况下,MBean服务器可以使用该构造函数构造此MBean类的另一个实例,即使这里没有列出。
- 结果
-
一组
MBeanConstructorInfo
对象。
-
getNotifications
public MBeanNotificationInfo[] getNotifications()
返回MBean发出的通知列表。 每个通知由一个MBeanNotificationInfo
对象描述。 返回的数组是内部数组,这意味着它是对引用的一个内部数组的副本的浅表副本MBeanNotificationInfo
对象,但是,每个引用MBeanNotificationInfo
对象不被复制。- 结果
-
一组
MBeanNotificationInfo
对象。
-
getDescriptor
public Descriptor getDescriptor()
获取此MBeanInfo的描述符。 更改返回值将对原始描述符没有影响。- Specified by:
-
getDescriptor
在接口DescriptorRead
- 结果
- 一个描述符是不可变的或原件的副本。
- 从以下版本开始:
- 1.6
-
toString
public String toString()
描述从类复制:Object
返回对象的字符串表示形式。 一般来说,toString
方法返回一个字符串,“文本上代表”这个对象。 结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法。该
toString
类方法Object
返回一个由类的名称,其中所述对象是其实例,该符号字符`的字符串@
”,并且对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:getClass().getName() + '@' + Integer.toHexString(hashCode())
-
equals
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
-
hashCode
public int hashCode()
描述从类复制:Object
返回对象的哈希码值。 支持这种方法有利于哈希表,如HashMap
所提供的那样 。hashCode
的总合同是:- 无论何时在执行Java应用程序时多次在同一个对象上调用该方法,
hashCode
方法必须始终返回相同的整数,前提是修改了对象中equals
比较中的信息。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。 - 如果根据
equals(Object)
方法两个对象相等,则在两个对象中的每个对象上调用hashCode
方法必须产生相同的整数结果。 - 不要求如果两个对象根据
Object.equals(java.lang.Object)
方法不相等,那么在两个对象中的每个对象上调用hashCode
方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。
尽可能合理实用,由类
Object
定义的hashCode方法确实为不同对象返回不同的整数。 (在某个时间点,hashCode可能或可能不被实现为对象的存储器地址的某些功能。)- 重写:
-
hashCode
在Object
- 结果
- 该对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
- 无论何时在执行Java应用程序时多次在同一个对象上调用该方法,
-
-