|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.management.ImmutableDescriptor
public class ImmutableDescriptor
不可变的描述符。
| 字段摘要 | |
|---|---|
static ImmutableDescriptor |
EMPTY_DESCRIPTOR
空描述符。 |
| 构造方法摘要 | |
|---|---|
ImmutableDescriptor(Map<String,?> fields)
构造一个描述符,其中字段名称和值是给定 Map 的键和值。 |
|
ImmutableDescriptor(String... fields)
构造包含给定字段的描述符。 |
|
ImmutableDescriptor(String[] fieldNames,
Object[] fieldValues)
构造包含给定字段和值的描述符。 |
|
| 方法摘要 | |
|---|---|
Descriptor |
clone()
返回一个与此描述符相等的描述符。 |
boolean |
equals(Object o)
将此描述符与给定对象进行比较。 |
String[] |
getFieldNames()
返回描述符中的所有字段名。 |
String[] |
getFields()
以 string 数组的形式返回此 descriptor 中所包含的所有字段。 |
Object |
getFieldValue(String fieldName)
返回指定字段名的值,如果该名称不存在任何值,则返回 null。 |
Object[] |
getFieldValues(String... fieldNames)
以 Object 数组的形式返回该 descriptor 中的所有字段值。 |
int |
hashCode()
返回此描述符的哈希码值。 |
boolean |
isValid()
如果所有字段在给定其名称的情况下都有合法值,则返回 true。 |
void |
removeField(String fieldName)
从描述符移除字段。 |
void |
setField(String fieldName,
Object fieldValue)
因为此类不可变,所以不支持此操作。 |
void |
setFields(String[] fieldNames,
Object[] fieldValues)
因为此类不可变,所以不支持此操作。 |
String |
toString()
返回该对象的字符串表示。 |
static ImmutableDescriptor |
union(Descriptor... descriptors)
返回一个 ImmutableDescriptor,其内容是给定描述符的并集。 |
| 从类 java.lang.Object 继承的方法 |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| 字段详细信息 |
|---|
public static final ImmutableDescriptor EMPTY_DESCRIPTOR
| 构造方法详细信息 |
|---|
public ImmutableDescriptor(String[] fieldNames,
Object[] fieldValues)
IllegalArgumentException - 如果数组为 null、数组的大小不同、字段名称为 null 或空,或者相同的字段名称出现多次。public ImmutableDescriptor(String... fields)
fieldName=fieldValue 的形式。字段名称在第一个 = 字符处结束;例如,如果 String 为 a=b=c,则字段名称为 a 且其值为 b=c。
IllegalArgumentException - 如果参数为 null、字段名称为空、相同字段名称出现多次或者其中一个字符串不包含 = 字符。public ImmutableDescriptor(Map<String,?> fields)
构造一个描述符,其中字段名称和值是给定 Map 的键和值。
IllegalArgumentException - 如果参数为 null、字段名称为 null 或空,或者相同字段名称出现多次(可能因为字段名称不区分大小写所致)。| 方法详细信息 |
|---|
public static ImmutableDescriptor union(Descriptor... descriptors)
返回一个 ImmutableDescriptor,其内容是给定描述符的并集。出现在任何描述符中的每个字段名称都将出现在结果中,并具有调用方法时字段名称所具有的值。对任何描述符的后续更改不影响此处返回的 ImmutableDescriptor。
在最简单的情况下,只有一个描述符,且返回的 ImmutableDescriptor 是在调用此方法时该描述符中字段的副本:
Descriptor d = something(); ImmutableDescriptor copy = ImmutableDescriptor.union(d);
descriptors - 要合并的描述符。任何描述符都可以为 null,在此情况下可以将其跳过。
ImmutableDescriptor。如果它是一个包含所有所需字段的 ImmutableDescriptor,则返回的对象可以与某个输入描述符相同。
IllegalArgumentException - 如果两个 Descriptor 包含具有不同关联值的相同字段名称。如果基本类型数组值是具有相同元素的同一类型的值,则将其视为相同。如果 Arrays.deepEquals(Object[],Object[]) 返回 true,则将对象数组值视为相同。public final Object getFieldValue(String fieldName)
Descriptor 复制的描述
Descriptor 中的 getFieldValuefieldName - 字段名称。
public final String[] getFields()
Descriptor 复制的描述
Descriptor 中的 getFieldsDescriptor.setFields(java.lang.String[], java.lang.Object[])public final Object[] getFieldValues(String... fieldNames)
Descriptor 复制的描述fieldNames String 数组参数的顺序相同。
Descriptor 中的 getFieldValuesfieldNames - 字段名称的 String 数组,应该返回这些字段的值。如果该数组为空,则将返回一个空数组。如果数组为 null,则将返回所有值,如同参数是 Descriptor.getFieldNames() 返回的数组一样。如果数组中某个字段名不存在(包括字段名为 null 或空字符串的情况),则对于要返回的匹配数组元素,将返回 null。
fieldNames 列表为空,则将得到一个空数组。public final String[] getFieldNames()
Descriptor 复制的描述
Descriptor 中的 getFieldNamespublic boolean equals(Object o)
Arrays.deepEquals(Object[],Object[]) 必须返回 true。Object.equals(Object) 必须返回 true。
Descriptor 中的 equalsObject 中的 equalso - 要与之比较的对象。
true;否则返回 false。Object.hashCode(),
Hashtablepublic int hashCode()
返回此描述符的哈希码值。该哈希码是描述符中每个字段的哈希码的总和。名称为 n 且值为 v 的字段的哈希码是 n.toLowerCase().hashCode() ^ h。这里的 h 是 v 的哈希码,计算方式如下:
v 为 null,则 h 为 0。v 是基本类型数组,则使用 java.util.Arrays.hashCode 的适当重载形式计算 h。v 是对象数组,则使用 Arrays.deepHashCode(Object[]) 计算 h。h 为 v.hashCode()。
Descriptor 中的 hashCodeObject 中的 hashCodeObject.equals(java.lang.Object),
Hashtablepublic String toString()
Object 复制的描述toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Object 中的 toStringpublic boolean isValid()
Descriptor 中的 isValidRuntimeOperationsException - 如果有效性检查失败。如果描述符无效,则该方法返回 false,但如果尝试确定有效性失败,则将抛出此异常。public Descriptor clone()
返回一个与此描述符相等的描述符。对返回的描述符进行的更改不影响此描述符,反之亦然。
此方法返回它调用的对象。子类可以重写此方法,以便在符合条件的情况下返回另一个对象。
Descriptor 中的 cloneObject 中的 cloneRuntimeOperationsException - 如果 Names 或 Values 字段的值为非法值。如果描述符构造由于任何原因而失败,都将抛出此异常。Cloneable
public final void setFields(String[] fieldNames,
Object[] fieldValues)
throws RuntimeOperationsException
UnsupportedOperationException 的 RuntimeOperationsException。否则,其行为将与可变描述符的行为相同:要么因为非法参数而抛出异常,要么无效。
Descriptor 中的 setFieldsfieldNames - 字段名称的 String 数组。数组和数组元素不能为 null。fieldValues - 对应字段值的 Object 数组。数组不能为 null。数组的元素可以为 null。
RuntimeOperationsException - 如果由于某种原因更改失败。如果 fieldNames 或 fieldValues 为 null,或者数组的长度不同,或者其中一个数组存在非法值,则包装的异常为 IllegalArgumentException。如果描述符不可变,且调用将更改其内容,则包装的异常为 UnsupportedOperationException。Descriptor.getFields()
public final void setField(String fieldName,
Object fieldValue)
throws RuntimeOperationsException
UnsupportedOperationException 的 RuntimeOperationsException。否则,其行为将与可变描述符的行为相同:要么因为非法参数而抛出异常,要么无效。
Descriptor 中的 setFieldfieldName - 要设置的字段的名称。不能为 null 或空。fieldValue - 针对该字段名称所设置的字段值。如果 null 是字段的有效值,则可以为 null。
RuntimeOperationsException - 如果字段名或字段值不合法(包装的异常为 IllegalArgumentException);或者描述符不可变(包装的异常为 UnsupportedOperationException)。public final void removeField(String fieldName)
Descriptor 中的 removeFieldfieldName - 要移除的字段的 String 名称。如果字段名不合法或找不到字段,则不抛出任何异常。
RuntimeOperationsException - 如果存在给定名称的字段且描述符不可变。包装的异常将是一个 UnsupportedOperationException。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。