- 所有已实现的接口:
-
Serializable
,CompositeData
CompositeDataSupport
类是实现CompositeData
接口的开放数据类。
- 自:
- 1.5
- 参见:
-
Constructor Summary
ConstructorDescriptionCompositeDataSupport
(CompositeType compositeType, String[] itemNames, Object[] itemValues) 构造具有指定compositeType
的CompositeDataSupport
实例,其项目值由itemValues[]
指定,顺序与itemNames[]
中的顺序相同。CompositeDataSupport
(CompositeType compositeType, Map<String, ?> items) 构造具有指定compositeType
的CompositeDataSupport
实例,其项目名称和相应值由映射中的items
给出。 -
Method Summary
Modifier and TypeMethodDescriptionboolean
containsKey
(String key) 如果且仅当此CompositeData
实例包含名称为key
的项目时返回true
。boolean
containsValue
(Object value) 如果且仅当此CompositeData
实例包含值为value
的项目时返回true
。boolean
将指定的obj参数与此CompositeDataSupport
实例进行比较以检查是否相等。返回名称为key
的项目的值。Object[]
返回由keys
指定的项目的值数组,顺序与keys
相同。返回此复合数据实例的复合类型。int
hashCode()
返回此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
实例的字符串表示形式
-