Module java.management

Class CompositeDataSupport

java.lang.Object
javax.management.openmbean.CompositeDataSupport
所有已实现的接口:
Serializable, CompositeData

public class CompositeDataSupport extends Object implements CompositeData, Serializable
CompositeDataSupport类是实现CompositeData接口的开放数据类。
自:
1.5
参见:
  • Constructor Summary

    Constructors
    Constructor
    Description
    CompositeDataSupport(CompositeType compositeType, String[] itemNames, Object[] itemValues)
    构造具有指定compositeTypeCompositeDataSupport实例,其项目值由itemValues[]指定,顺序与itemNames[]中的顺序相同。
    CompositeDataSupport(CompositeType compositeType, Map<String,?> items)
    构造具有指定compositeTypeCompositeDataSupport实例,其项目名称和相应值由映射中的items给出。
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    如果且仅当此CompositeData实例包含名称为key的项目时返回true
    boolean
    如果且仅当此CompositeData实例包含值为value的项目时返回true
    boolean
    equals(Object obj)
    将指定的obj参数与此CompositeDataSupport实例进行比较以检查是否相等。
    get(String key)
    返回名称为key的项目的值。
    Object[]
    getAll(String[] keys)
    返回由keys指定的项目的值数组,顺序与keys相同。
    返回此复合数据实例的复合类型
    int
    返回此CompositeDataSupport实例的哈希码值。
    返回此CompositeDataSupport实例的字符串表示形式。
    values()
    返回此CompositeData实例中包含的项目值的不可修改集合视图。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • 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

      public CompositeType getCompositeType()
      返回此复合数据实例的复合类型
      指定者:
      getCompositeType 在接口 CompositeData
      返回:
      此CompositeData的类型。
    • get

      public Object get(String key)
      返回名称为key的项目的值。
      指定者:
      get 在接口 CompositeData
      参数:
      key - 项目的名称。
      返回:
      与此键关联的值。
      抛出:
      IllegalArgumentException - 如果key为null或空字符串。
      InvalidKeyException - 如果key不是此CompositeData实例的现有项目名称。
    • getAll

      public Object[] getAll(String[] keys)
      返回由keys指定的项目的值数组,顺序与keys相同。
      指定者:
      getAll 在接口 CompositeData
      参数:
      keys - 项目的名称。
      返回:
      与键对应的值。
      抛出:
      IllegalArgumentException - 如果keys中的元素为null或空字符串。
      InvalidKeyException - 如果keys中的元素不是此CompositeData实例的现有项目名称。
    • containsKey

      public boolean containsKey(String key)
      如果key为null或空字符串,则仅当此CompositeData实例包含名称为key的项目时返回true
      指定者:
      containsKey 在接口 CompositeData
      参数:
      key - 要测试的键。
      返回:
      如果此CompositeData包含该键,则为true。
    • containsValue

      public boolean containsValue(Object value)
      如果CompositeData实例包含值为value的项目,则仅当此CompositeData实例包含该项目时返回true
      指定者:
      containsValue 在接口 CompositeData
      参数:
      value - 要测试的值。
      返回:
      如果此CompositeData包含该值,则为true。
    • values

      public Collection<?> values()
      返回此CompositeData实例中包含的项目值的不可修改集合视图。返回的集合的迭代器将以相应项目名称的升序字典顺序返回值。
      指定者:
      values 在接口 CompositeData
      返回:
      值。
    • equals

      public boolean equals(Object obj)
      比较指定的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实例t1t2,都有t1.hashCode()==t2.hashCode(),这是方法Object.hashCode()的一般契约所要求的。

      每个项目值的哈希码都会添加到返回的哈希码中。如果项目值是数组,则其哈希码将获得,就像调用对象引用类型数组的deepHashCode方法或适当重载的Arrays.hashCode(e)方法一样。

      指定者:
      hashCode 在接口 CompositeData
      覆盖:
      hashCode 在类 Object
      返回:
      CompositeDataSupport实例的哈希码值
      参见:
    • toString

      public String toString()
      返回此CompositeDataSupport实例的字符串表示形式。

      字符串表示形式包括此类的名称(即javax.management.openmbean.CompositeDataSupport)、此实例的复合类型的字符串表示形式,以及内容的字符串表示形式(即列出itemName=itemValue映射)。

      指定者:
      toString 在接口 CompositeData
      覆盖:
      toString 在类 Object
      返回:
      CompositeDataSupport实例的字符串表示形式