Module  java.management
软件包  javax.management

Class MBeanInfo

  • All Implemented Interfaces:
    SerializableCloneableDescriptorRead
    已知直接子类:
    ModelMBeanInfoSupportOpenMBeanInfoSupport


    public class MBeanInfo
    extends Object
    implements Cloneable, Serializable, DescriptorRead

    描述MBean暴露的管理界面; 即可用于管理操作的一组属性和操作。 这个类的实例是不可变的。 子类可能是可变的,但不建议这样做。

    通常,任何给定的MBean的MBeanInfo在该MBean的生命周期内不会改变。 动态MBean可以改变他们MBeanInfo ,并在这种情况下,建议他们发出Notification具有type"jmx.mbean.info.changed"userData那就是新MBeanInfo 这不是必需的,但是为MBean的客户端提供了传统的方式来发现更改。 另见immutableInfoinfoTimeout字段中的MBeanInfo Descriptor

    动态MBean的MBeanInfo的内容由其getMBeanInfo()方法确定。 这包括Open MBeans和Model MBean,它们是动态MBeans的种类。

    标准MBean的MBeanInfo的内容由MBean服务器确定如下:

    getDescription()返回的描述和所包含的属性和操作的说明未指定。

    未指定标准MBean的MBeanInfo的其余详细信息。 这包括任何包含的构造函数和通知的描述; 构造函数和操作的参数名称; 以及构造函数参数的描述。

    从以下版本开始:
    1.5
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • 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()实现的默认原生浅克隆机制。 没有更深入地克隆任何内部领域。

        由于这个类是不可变的,所以克隆方法主要是对子类感兴趣的。

        重写:
        cloneObject
        结果
        这个实例的一个克隆。
        另请参见:
        Cloneable
      • 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())
         
        重写:
        toStringObject
        结果
        对象的字符串表示形式。
      • hashCode

        public int hashCode​()
        描述从类复制: Object
        返回对象的哈希码值。 支持这种方法有利于哈希表,如HashMap所提供的那样

        hashCode的总合同是:

        • 无论何时在执行Java应用程序时多次在同一个对象上调用该方法, hashCode方法必须始终返回相同的整数,前提是修改了对象中equals比较中的信息。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。
        • 如果根据equals(Object)方法两个对象相等,则在两个对象中的每个对象上调用hashCode方法必须产生相同的整数结果。
        • 要求如果两个对象根据Object.equals(java.lang.Object)方法不相等,那么在两个对象中的每个对象上调用hashCode方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。

        尽可能合理实用,由类Object定义的hashCode方法确实为不同对象返回不同的整数。 (在某个时间点,hashCode可能或可能不被实现为对象的存储器地址的某些功能。)

        重写:
        hashCodeObject
        结果
        该对象的哈希码值。
        另请参见:
        Object.equals(java.lang.Object)System.identityHashCode(java.lang.Object)