模块  java.management
软件包  javax.management

Class ImmutableDescriptor

    • 字段详细信息

      • EMPTY_DESCRIPTOR

        public static final ImmutableDescriptor EMPTY_DESCRIPTOR
        一个空的描述符。
    • 构造方法详细信息

      • ImmutableDescriptor

        public ImmutableDescriptor​(String[] fieldNames,
                                   Object[] fieldValues)
        构造包含给定字段和值的描述符。
        参数
        fieldNames - 字段名称
        fieldValues - 字段值
        异常
        IllegalArgumentException - 如果任一数组为null,或者数组具有不同的大小,或者字段名称为null或为空,或者同一字段名称出现多次。
      • ImmutableDescriptor

        public ImmutableDescriptor​(String... fields)
        构造包含给定字段的描述符。 每个字符串的格式必须为fieldName=fieldValue 字段名称以第一个=字符结尾; 例如,如果String为a=b=c则字段名称为a ,其值为b=c
        参数
        字段 - 字段名称
        异常
        IllegalArgumentException - 如果参数为null,或者字段名称为空,或者同一字段名称出现多次,或者其中一个字符串不包含 =字符。
      • ImmutableDescriptor

        public ImmutableDescriptor​(Map<String,​?> fields)

        构造一个描述符,其中字段的名称和值是给定Map的键和值。

        参数
        字段 - 字段名称和值
        异常
        IllegalArgumentException - 如果参数为null,或者字段名称为null或为空,或者同一字段名称出现多次(由于字段名称不区分大小写,可能会发生这种情况)。
    • 方法详细信息

      • union

        public static ImmutableDescriptor union​(Descriptor... descriptors)

        返回ImmutableDescriptor其内容是给定描述符的并集。 出现在任何描述符中的每个字段名称都将显示在结果中,并带有调用方法时的值。 对任何描述符的后续更改不会影响此处返回的ImmutableDescriptor。

        在最简单的情况下,只有一个描述符,返回的ImmutableDescriptor是调用此方法时其字段的副本:

          Descriptor d = something();
         ImmutableDescriptor copy = ImmutableDescriptor.union(d); 
        参数
        descriptors - 要组合的描述符。 任何描述符都可以为null,在这种情况下它将被跳过。
        结果
        ImmutableDescriptor ,它是给定描述符的并集。 如果返回的对象是包含所有必需字段的ImmutableDescriptor,则返回的对象可以与输入描述符之一相同。
        异常
        IllegalArgumentException - 如果两个描述符包含具有不同关联值的相同字段名称。 如果原始数组值具有相同元素的相同类型,则认为它们是相同的。 如果Arrays.deepEquals(Object[],Object[])返回true,则认为对象数组值相同。
      • equals

        public boolean equals​(Object o)
        将此描述符与给定对象进行比较。 如果给定对象也是描述符,并且两个描述符具有相同的字段名称(可能在大小写上有所不同)和相同的关联值,则对象是相等的。 如果满足以下条件,则两个描述符中字段的相应值相等:
        • 如果一个值为null,则另一个值也必须为null。
        • 如果一个值是原始数组,那么另一个必须是具有相同元素的相同类型的基本数组。
        • 如果一个值是一个对象数组,那么另一个值必须也是,并且Arrays.deepEquals(Object[],Object[])必须返回true。
        • 否则Object.equals(Object)必须返回true。
        Specified by:
        equals在界面 Descriptor
        重写:
        equals在类 Object
        参数
        o - 要与之比较的对象。
        结果
        true如果对象相同; 否则为false
        另请参见:
        Object.hashCode()HashMap
      • hashCode

        public int hashCode()

        返回此描述符的哈希码值。 哈希码被计算为描述符中每个字段的哈希码的总和。 名称为n且值为v的字段的哈希码为n.toLowerCase().hashCode() ^ h 这里h的哈希码为v ,计算如下:

        • 如果v为空,则h为0。
        • 如果v是基本数组,则使用h的适当重载计算java.util.Arrays.hashCode
        • 如果v是一个对象数组然后h使用计算Arrays.deepHashCode(Object[])
        • 否则hv.hashCode()
        Specified by:
        hashCode接口 Descriptor
        重写:
        hashCode在类 Object
        结果
        此对象的哈希码值。
        另请参见:
        Object.equals(java.lang.Object)System.identityHashCode(java.lang.Object)
      • isValid

        public boolean isValid()
        如果所有字段都具有给定其名称的合法值,则返回true。 此方法始终返回true,但子类可以覆盖它以在适当时返回false。
        Specified by:
        isValid ,界面 Descriptor
        结果
        如果值是合法的,则为true。
        异常
        RuntimeOperationsException - 如果有效性检查失败。 如果描述符无效,则该方法返回false,但如果确定有效性的尝试失败,则抛出此异常。
      • clone

        public Descriptor clone()

        返回与此描述符相等的描述符。 对返回的描述符的更改将不会对此描述符产生任何影响,反之亦然。

        此方法返回调用它的对象。 如果遵守合同,子类可以覆盖它以返回另一个对象。

        Specified by:
        clone在界面 Descriptor
        重写:
        clone在类 Object
        结果
        这个实例的克隆。
        异常
        RuntimeOperationsException - 用于字段名称或字段值的非法值。 如果描述符构造因任何原因失败,则抛出此异常。
        另请参见:
        Cloneable
      • removeField

        public final void removeField​(String fieldName)
        从描述符中删除字段。
        Specified by:
        removeField ,界面 Descriptor
        参数
        fieldName - 要删除的字段的字符串名称。 如果字段名称非法或未找到该字段,则不会引发异常。
        异常
        RuntimeOperationsException - if a field of the given name exists and the descriptor is immutable. The wrapped exception will be an UnsupportedOperationException.