javax.management.openmbean

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

public class CompositeType
     
extends OpenType< CompositeData>

CompositeType 类是开放类型 类,它的实例描述了 CompositeData 值的类型。

从以下版本开始:
1.5
另请参见:
序列化表格

字段摘要
 
从类 javax.management.openmbean.OpenType 继承的字段
ALLOWED_CLASSNAMES, ALLOWED_CLASSNAMES_LIST
 
构造方法摘要
CompositeType(String typeName, String description, String[] itemNames, String[] itemDescriptions, OpenType<?>[] itemTypes)
          构造一个 CompositeType 实例,检查给定参数的有效性。
 
方法摘要
 boolean containsKey(String itemName)
          如果此 CompositeType 实例定义了名称为 itemName 的项,则返回 true
 boolean equals(Object obj)
          比较指定的 obj 参数与此 CompositeType 实例的相等性。
 String getDescription(String itemName)
          返回名称是 itemName 的项的描述,如果此 CompositeType 实例未定义任何名称是 itemName 的项,则返回 null
 OpenType<?> getType(String itemName)
          返回名称是 itemName 的项的开放类型,如果 CompositeType 实例未定义任何名称是 itemName 的项,则返回 null
 int hashCode()
          返回此 CompositeType 实例的哈希码值。
 boolean isValue(Object obj)
          测试 obj 是否为此 CompositeType 实例可以描述的值。
 Set<String> keySet()
          返回此 CompositeType 实例定义的所有项名称的不可修改的 Set 视图。
 String toString()
          返回此 CompositeType 实例的字符串表示形式。
 
从类 javax.management.openmbean.OpenType 继承的方法
getClassName, getDescription, getTypeName, isArray
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

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 实例并不重要;项名称按升序字典顺序排序进行内部存储。
 
itemDescriptions - 此 CompositeType 实例描述的复合数据值中已包含项的描述(与 itemNames 的顺序相同);应与 itemNames 的大小相同;任何元素不可以为 null 或空字符串。
 
itemTypes - 描述此 CompositeType 实例描述的复合数据值中已包含项的开放类型实例(与 itemNames 的顺序相同);应与 itemNames 的大小相同;任何元素不可以为 null。
 
抛出:
IllegalArgumentException - 如果 typeNamedescription 为 null 或空字符串;如果 itemNamesitemDescriptionsitemTypes 为 null;如果 itemNamesitemDescriptions 的任何元素为 null 或空字符串;如果 itemTypes 的任何元素为 null;如果 itemNamesitemDescriptionsitemTypes 的大小不同。
 
OpenDataException - 如果 itemNames 包含重复的项名称(区分大小写,但是移除了前导和尾部空格)。
方法详细信息

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 视图。集合的迭代器将按升序返回项名称。

返回:
StringSet

isValue

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

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

如果 objjavax.management.openmbean.CompositeData 的实例,然后设 ct 为其 CompositeType(由 CompositeData.getCompositeType() 返回)。那么如果 this 可以通过 ct 进行分配,则结果为 true。可以通过 ct 进行分配的含义是:

  • this.getTypeName() 等于 ct.getTypeName()
  • this 中不存在的项名称在 ct 中也不存在
  • 对于 this 中每一项,其类型都可以通过 ct 中的对应项进行分配

如果 typeName索引名称列表相同,且前者的行类型可以通过后者的行类型进行分配,则 TabularType 可以通过另一个 TabularType 进行分配。

如果维数相同;都是基本数组或者都不是;前者的元素类型可以通过后者的元素类型进行分配,则 ArrayType 可以通过另一个 ArrayType 进行分配。

在其他情况下,只有两者相等时 OpenType 才可以通过另一个 OpenType 进行分配。

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

指定者:
OpenType<CompositeData> 中的 isValue
参数:
obj - 要测试其开放类型与此 CompositeType 的相等性的值。
返回:
如果 obj 是此复合类型的值,则返回 true,否则返回 false

equals

public boolean equals(Object obj)
比较指定的 obj 参数与此 CompositeType 实例的相等性。

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

  • 它们的类型名称相同
  • 它们的项名称和类型相同

 

指定者:
OpenType<CompositeData> 中的 equals
参数:
obj - 与此 CompositeType 实例比较相等性的对象;如果 objnull,则 equals 返回 false
返回:
如果指定的对象等于此 CompositeType 实例,则返回 true
另请参见:
Object.hashCode(), Hashtable

hashCode

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

CompositeType 实例的哈希码是在 equals 比较中使用的所有信息元素的哈希码的总和(即名称、项名称和项类型)。这确保了 t1.equals(t2) 意味着对于任何两个 CompositeType 实例 t1t2 而言,都存在 t21.hashCode()==t2.hashCode(),这是方法 Object.hashCode() 的通用协定所要求的。

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

指定者:
OpenType<CompositeData> 中的 hashCode
返回:
CompositeType 实例的哈希码值
另请参见:
Object.equals(java.lang.Object), Hashtable

toString

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

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

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

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