Module java.management

Class CompositeType

java.lang.Object
javax.management.openmbean.OpenType<CompositeData>
javax.management.openmbean.CompositeType
所有已实现的接口:
Serializable

public class CompositeType extends OpenType<CompositeData>
CompositeType类是描述CompositeData值类型的开放类型类的实例。
自从:
1.5
参见:
  • Constructor Details

    • CompositeType

      public CompositeType(String typeName, String description, String[] itemNames, String[] itemDescriptions, OpenType<?>[] itemTypes) throws OpenDataException
      构造一个CompositeType实例,检查给定参数的有效性。下面描述了每个参数的有效性约束。

      请注意,三个数组参数itemNamesitemDescriptionsitemTypes的内容会被内部复制,因此调用此构造函数后对这些数组的任何后续修改都不会影响构造的CompositeType实例。

      此复合类型表示的复合数据值的Java类名(即由getClassName方法返回的类名)设置为CompositeData.class.getName()返回的字符串值。

      参数:
      typeName - 此实例表示的复合类型的名称;不能为null或空字符串。
      description - 此实例表示的复合类型的人类可读描述;不能为null或空字符串。
      itemNames - 此CompositeType实例描述的复合数据值中包含的项的名称;不能为null,应至少包含一个元素;没有元素可以是null或空字符串。请注意,给出项名称的顺序对于区分一个CompositeType实例与另一个CompositeType实例并不重要;项名称在内部以升序字母数字顺序排序存储。
      itemDescriptions - 与itemNames的顺序相同,描述此CompositeType实例描述的复合数据值中包含的项;应与itemNames的大小相同;没有元素可以是null或空字符串。
      itemTypes - 与itemNames的顺序相同,描述此CompositeType实例描述的复合数据值中包含的项的开放类型实例;应与itemNames的大小相同;没有元素可以是null。
      抛出:
      IllegalArgumentException - 如果typeNamedescription为null或空字符串,或itemNamesitemDescriptionsitemTypes为null,或itemNamesitemDescriptionsitemTypes的任何元素为null或空字符串,或itemNamesitemDescriptionsitemTypes的大小不同。
      OpenDataException - 如果itemNames包含重复的项名称(区分大小写,但前导和尾随空格已移除)。
  • Method Details

    • containsKey

      public boolean containsKey(String itemName)
      如果此CompositeType实例定义了一个名称为itemName的项,则返回true
      参数:
      itemName - 项的名称。
      返回:
      如果存在此名称的项,则返回true。
    • getDescription

      public String getDescription(String itemName)
      返回名称为itemName的项的描述,如果此CompositeType实例未定义名称为itemName的任何项,则返回null
      参数:
      itemName - 项的名称。
      返回:
      描述。
    • getType

      public OpenType<?> getType(String itemName)
      返回名称为itemName的项的开放类型,如果此CompositeType实例未定义名称为itemName的任何项,则返回null
      参数:
      itemName - 时间的名称。
      返回:
      类型。
    • keySet

      public Set<String> keySet()
      返回此CompositeType实例定义的所有项名称的不可修改Set视图。该集合的迭代器将按升序返回项名称。
      返回:
      一个Set,其中包含String
    • isValue

      public boolean isValue(Object obj)
      测试obj是否是可以由此CompositeType实例描述的值。

      如果obj为null或不是javax.management.openmbean.CompositeData的实例,则isValue返回false

      如果objjavax.management.openmbean.CompositeData的实例,则让ct为其由CompositeData.getCompositeType()返回的CompositeType。如果this可以从ct中分配,则结果为true。这意味着:

      • this.getTypeName()等于ct.getTypeName(),并且
      • this中不存在ct中也不存在的项名称,且
      • 对于this中的每个项,其类型可以从ct中相应项的类型中分配。

      如果一个TabularType可以从另一个TabularType中分配,那么它们具有相同的typeName索引名称列表,并且第一个的行类型可以从第二个的行类型中分配。

      如果一个ArrayType可以从另一个ArrayType中分配,那么它们具有相同的维度;并且两者都是原始数组或都不是;第一个的元素类型可以从第二个的元素类型中分配。

      在其他所有情况下,只有当两个OpenType相等时,一个OpenType才可以从另一个OpenType中分配。

      这些规则意味着可以向CompositeData添加额外的项,而不会使其对于没有这些项的CompositeType无效。

      指定者:
      isValue 在类 OpenType<CompositeData>
      参数:
      obj - 要测试其与此CompositeType实例的兼容性的值。
      返回:
      如果obj是此复合类型的值,则返回true,否则返回false
    • equals

      public boolean equals(Object obj)
      将指定的obj参数与此CompositeType实例进行比较,以确定它们是否相等。

      仅当以下所有语句都为真时,两个CompositeType实例才相等:

      • 它们的类型名称相等
      • 它们的项名称和类型相等
      指定者:
      equals 在类 OpenType<CompositeData>
      参数:
      obj - 要与此CompositeType实例进行相等比较的对象;如果objnull,则equals返回false
      返回:
      如果指定的对象等于此CompositeType实例,则返回true
      参见:
    • hashCode

      public int hashCode()
      返回此CompositeType实例的哈希码值。

      CompositeType实例的哈希码是用于equals比较的所有信息元素的哈希码之和(即:名称、项名称、项类型)。这确保了对于任何两个CompositeType实例t1t2,如果t1.equals(t2),则t1.hashCode()==t2.hashCode(),这是Object.hashCode()方法的一般契约所要求的。

      由于CompositeType实例是不可变的,因此此实例的哈希码在第一次调用hashCode时计算,然后对于后续调用返回相同的值。

      覆盖:
      hashCode 在类 Object
      返回:
      CompositeType实例的哈希码值
      参见:
    • toString

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

      字符串表示形式包括此类的名称(即javax.management.openmbean.CompositeType)、此实例的类型名称以及此实例的项目名称和类型字符串表示形式的列表。

      由于CompositeType实例是不可变的,因此此实例的字符串表示形式在第一次调用toString时计算一次,然后对后续调用返回相同的值。

      指定者:
      toString 在类 OpenType<CompositeData>
      返回:
      CompositeType实例的字符串表示形式