- 所有已实现的接口:
-
Serializable,CompositeData
CompositeDataSupport类是实现CompositeData接口的开放数据类。
- 自:
- 1.5
- 参见:
-
Constructor Summary
ConstructorsConstructorDescriptionCompositeDataSupport(CompositeType compositeType, String[] itemNames, Object[] itemValues) 构造具有指定compositeType的CompositeDataSupport实例,其项目值由itemValues[]指定,顺序与itemNames[]中的顺序相同。CompositeDataSupport(CompositeType compositeType, Map<String, ?> items) 构造具有指定compositeType的CompositeDataSupport实例,其项目名称和相应值由映射中的items给出。 -
Method Summary
Modifier and TypeMethodDescriptionbooleancontainsKey(String key) 如果且仅当此CompositeData实例包含名称为key的项目时返回true。booleancontainsValue(Object value) 如果且仅当此CompositeData实例包含值为value的项目时返回true。boolean将指定的obj参数与此CompositeDataSupport实例进行比较以检查是否相等。返回名称为key的项目的值。Object[]返回由keys指定的项目的值数组,顺序与keys相同。返回此复合数据实例的复合类型。inthashCode()返回此CompositeDataSupport实例的哈希码值。toString()返回此CompositeDataSupport实例的字符串表示形式。Collection<?> values()返回此CompositeData实例中包含的项目值的不可修改集合视图。
-
Constructor Details
-
CompositeDataSupport
public CompositeDataSupport(CompositeType compositeType, String[] itemNames, Object[] itemValues) throws OpenDataException 使用指定的
compositeType构造CompositeDataSupport实例,其项目值由itemValues[]指定,顺序与itemNames[]中的顺序相同。由于CompositeType不对其项目指定任何顺序,因此itemNames[]参数用于指定在itemValues[]中给出值的顺序。此CompositeDataSupport实例中包含的项目在内部存储在TreeMap中,因此按其名称的升序字典顺序排序,以便更快地检索单个项目值。构造函数检查每个参数的以下所有约束是否满足,并在不满足时抛出适当的异常。
- 参数:
-
compositeType- 此复合数据实例的复合类型; 不得为null。 -
itemNames-itemNames必须列出compositeType中定义的所有项目名称,顺序任意,列出名称的顺序用于匹配itemValues[]中的值; 不得为null或空。 -
itemValues- 项目的值,按照它们在itemNames中相应名称的顺序列出; 每个项目值可以为null,但如果非null,则必须是对应项目的compositeType中定义的开放类型的有效值; 必须与itemNames的大小相同; 不得为null或空。 - 抛出:
-
IllegalArgumentException-compositeType为null,或itemNames[]或itemValues[]为null或空,或itemNames[]中的一个元素为null或空字符串,或itemNames[]和itemValues[]的大小不同。 -
OpenDataException-itemNames[]或itemValues[]的大小与compositeType中定义的项目数不同,或itemNames[]中的一个元素在compositeType中不存在作为项目名称,或itemValues[]中的一个元素不是作为compositeType中定义的相应项目的有效值。
-
CompositeDataSupport
public CompositeDataSupport(CompositeType compositeType, Map<String, ?> items) throws OpenDataException使用指定的
compositeType构造CompositeDataSupport实例,其项目名称和相应值由映射中的items给出。此构造函数将键转换为字符串数组,将值转换为对象数组,并调用CompositeDataSupport(javax.management.openmbean.CompositeType, java.lang.String[], java.lang.Object[])。- 参数:
-
compositeType- 此复合数据实例的复合类型; 不得为null。 -
items- 所有项目名称到它们的值的映射;items必须包含compositeType中定义的所有项目名称; 不得为null或空。 - 抛出:
-
IllegalArgumentException-compositeType为null,或items为null或空,或items中的一个键为null或空。 -
OpenDataException-items的大小与compositeType中定义的项目数不同,或items中的一个键在compositeType中不存在作为项目名称,或items中的一个值不是作为compositeType中定义的相应项目的有效值。 -
ArrayStoreException-items中的一个或多个键不是java.lang.String类。
-
-
Method Details
-
getCompositeType
返回此复合数据实例的复合类型。- 指定者:
-
getCompositeType在接口CompositeData中 - 返回:
- 此CompositeData的类型。
-
get
返回名称为key的项目的值。- 指定者:
-
get在接口CompositeData中 - 参数:
-
key- 项目的名称。 - 返回:
- 与此键关联的值。
- 抛出:
-
IllegalArgumentException- 如果key为null或空字符串。 -
InvalidKeyException- 如果key不是此CompositeData实例的现有项目名称。
-
getAll
返回由keys指定的项目的值数组,顺序与keys相同。- 指定者:
-
getAll在接口CompositeData中 - 参数:
-
keys- 项目的名称。 - 返回:
- 与键对应的值。
- 抛出:
-
IllegalArgumentException- 如果keys中的元素为null或空字符串。 -
InvalidKeyException- 如果keys中的元素不是此CompositeData实例的现有项目名称。
-
containsKey
如果key为null或空字符串,则仅当此CompositeData实例包含名称为key的项目时返回true。- 指定者:
-
containsKey在接口CompositeData中 - 参数:
-
key- 要测试的键。 - 返回:
-
如果此
CompositeData包含该键,则为true。
-
containsValue
如果CompositeData实例包含值为value的项目,则仅当此CompositeData实例包含该项目时返回true。- 指定者:
-
containsValue在接口CompositeData中 - 参数:
-
value- 要测试的值。 - 返回:
-
如果此
CompositeData包含该值,则为true。
-
values
返回此CompositeData实例中包含的项目值的不可修改集合视图。返回的集合的迭代器将以相应项目名称的升序字典顺序返回值。- 指定者:
-
values在接口CompositeData中 - 返回:
- 值。
-
equals
比较指定的obj参数与此CompositeDataSupport实例是否相等。仅当以下所有语句都为真时返回
true:- obj不为null,
- obj也实现了
CompositeData接口, - 它们的复合类型相等,
- 它们的内容,即(名称,值)对相等。如果内容中包含的值是数组,则值的比较就像调用对象引用类型数组的
deepEquals方法或适当重载的Arrays.equals(e1,e2)方法来进行。
这确保了此
equals方法对于obj参数正常工作,这些参数是CompositeData接口的不同实现,但受到java.util.Collection接口的equals方法中提到的限制。- 指定者:
-
equals在接口CompositeData中 - 覆盖:
-
equals在类Object中 - 参数:
-
obj- 与此CompositeDataSupport实例进行比较的对象。 - 返回:
-
如果指定对象等于此
CompositeDataSupport实例,则返回true。 - 参见:
-
hashCode
public int hashCode()返回此CompositeDataSupport实例的哈希码值。CompositeDataSupport实例的哈希码是用于equals比较的所有信息元素的哈希码之和(即:其复合类型和所有项目值)。这确保了
t1.equals(t2)意味着对于任何两个CompositeDataSupport实例t1和t2,都有t1.hashCode()==t2.hashCode(),这是方法Object.hashCode()的一般契约所要求的。每个项目值的哈希码都会添加到返回的哈希码中。如果项目值是数组,则其哈希码将获得,就像调用对象引用类型数组的
deepHashCode方法或适当重载的Arrays.hashCode(e)方法一样。- 指定者:
-
hashCode在接口CompositeData中 - 覆盖:
-
hashCode在类Object中 - 返回:
-
此
CompositeDataSupport实例的哈希码值 - 参见:
-
toString
返回此CompositeDataSupport实例的字符串表示形式。字符串表示形式包括此类的名称(即
javax.management.openmbean.CompositeDataSupport)、此实例的复合类型的字符串表示形式,以及内容的字符串表示形式(即列出itemName=itemValue映射)。- 指定者:
-
toString在接口CompositeData中 - 覆盖:
-
toString在类Object中 - 返回:
-
此
CompositeDataSupport实例的字符串表示形式
-