- java.lang.Object
 -  
      
- javax.management.ImmutableDescriptor
 
 
-  
       
- 实现的所有接口
 -  
         
Serializable,Cloneable,Descriptor 
public class ImmutableDescriptor extends Object implements Descriptor
一个不可变的描述符。- 从以下版本开始:
 - 1.6
 - 另请参见:
 - Serialized Form
 
 
-  
        
       
-  
             
字段汇总
字段 变量和类型 字段 描述 static ImmutableDescriptorEMPTY_DESCRIPTOR一个空的描述符。 
-  
             
构造方法摘要
构造方法 构造器 描述 ImmutableDescriptor(String... fields)构造包含给定字段的描述符。ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)构造包含给定字段和值的描述符。ImmutableDescriptor(Map<String,?> fields)构造一个描述符,其中字段的名称和值是给定Map的键和值。 
-  
             
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 Descriptorclone()返回与此描述符相等的描述符。booleanequals(Object o)将此描述符与给定对象进行比较。inthashCode()返回此描述符的哈希码值。booleanisValid()如果所有字段都具有给定其名称的合法值,则返回true。voidremoveField(String fieldName)从描述符中删除字段。voidsetField(String fieldName, Object fieldValue)此操作不受支持,因为此类是不可变的。voidsetFields(String[] fieldNames, Object[] fieldValues)此操作不受支持,因为此类是不可变的。static ImmutableDescriptorunion(Descriptor... descriptors)返回ImmutableDescriptor其内容是给定描述符的并集。-  
               
声明方法的接口 javax.management.Descriptor
getFieldNames, getFields, getFieldValue, getFieldValues 
 -  
               
 
 -  
             
 
-  
        
       
-  
             
字段详细信息
-  
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[])。 -  否则
h是v.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 
 
-  
setFields
public final void setFields(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
此操作不受支持,因为此类是不可变的。 如果此调用将更改具有相同内容的可变描述符,则抛出包装UnsupportedOperationException的RuntimeOperationsException。 否则,行为与可变描述符的行为相同:由于非法参数而抛出异常,或者没有效果。- Specified by:
 -  
              
setFields在界面Descriptor - 参数
 -  
              
fieldNames- 字段名称的字符串数组。 数组和数组元素不能为null。 -  
              
fieldValues- 相应字段值的对象数组。 该数组不能为null。 数组的元素可以为null。 - 异常
 -  
              
RuntimeOperationsException- 如果更改因任何原因失败。 如果fieldNames或fieldValues为空,或者如果数组的长度不同,或者其中一个数组中存在非法值,则包装的例外为IllegalArgumentException。 如果描述符是不可变的,则包装的异常是UnsupportedOperationException,并且调用将更改其内容。 - 另请参见:
 -  
              
Descriptor.getFields() 
 
-  
setField
public final void setField(String fieldName, Object fieldValue) throws RuntimeOperationsException
此操作不受支持,因为此类是不可变的。 如果此调用将更改具有相同内容的可变描述符,则抛出包装UnsupportedOperationException的RuntimeOperationsException。 否则,行为与可变描述符的行为相同:由于非法参数而抛出异常,或者没有效果。- Specified by:
 -  
              
setField在界面Descriptor - 参数
 -  
              
fieldName- 要设置的字段名称。 不能为null或为空。 -  
              
fieldValue- 要为字段名称设置的字段值。 如果这是该字段的有效值,则可以为null。 - 异常
 -  
              
RuntimeOperationsException- 如果字段名称或字段值非法(包装异常为IllegalArgumentException); 或者如果描述符是不可变的(包装异常是UnsupportedOperationException)。 
 
-  
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 anUnsupportedOperationException. 
 
 -  
 
 -