public class CompositeType extends OpenType<CompositeData>
CompositeType
类是开放类,其实例描述了CompositeData
值的类型。
ALLOWED_CLASSNAMES, ALLOWED_CLASSNAMES_LIST
Constructor and Description |
---|
CompositeType(String typeName, String description, String[] itemNames, String[] itemDescriptions, OpenType<?>[] itemTypes)
构造一个
CompositeType 实例,检查给定参数的有效性。
|
Modifier and Type | Method and Description |
---|---|
boolean |
containsKey(String itemName)
如果此
CompositeType 实例定义名称为
itemName的项目,则返回
true 。
|
boolean |
equals(Object obj)
将指定的
obj 参数与此
CompositeType 实例相比较。
|
String |
getDescription(String itemName)
返回其名称为
itemName,或该项目的描述
null 如果这
CompositeType 实例不定义其名称为
itemName的任何项目。
|
OpenType<?> |
getType(String itemName)
返回
开放类型 ,其名称为
itemName,或该项目的
null 如果这
CompositeType 实例不定义其名称为
itemName的任何项目。
|
int |
hashCode()
返回此
CompositeType 实例的哈希码值。
|
boolean |
isValue(Object obj)
测试
obj是否可以由此
CompositeType 实例描述的值。
|
Set<String> |
keySet()
返回由此
CompositeType 实例定义的所有项目名称的不可修改的Set视图。
|
String |
toString()
返回此
CompositeType 实例的字符串表示形式。
|
getClassName, getDescription, getTypeName, isArray
public CompositeType(String typeName, String description, String[] itemNames, String[] itemDescriptions, OpenType<?>[] itemTypes) throws OpenDataException
CompositeType
实例,检查给定参数的有效性。
以下对每个参数描述有效性约束。
请注意,内部复制了三个数组参数itemNames , itemDescriptions和itemTypes的内容,以便此构造函数的调用者对这些数组的任何后续修改对构造的CompositeType
实例都没有影响。
复合类型表示的复合数据值的Java类名称(即由getClassName
方法返回的类名称)设置为由CompositeData.class.getName()
返回的字符串值。
typeName
- 此实例表示的复合类型的名称;
不能为null或空字符串。
description
- 该实例表示的复合类型的人类可读描述;
不能为null或空字符串。
itemNames
- 由CompositeType
实例描述的复合数据值中包含的项目的名称;
不能为null,应至少包含一个元素;
没有元素可以是空字符串或空字符串。
请注意,给定项目名称的顺序对于区分CompositeType
实例与其他实例CompositeType
;
内部存储的项目名称以升序字母数字顺序排列。
itemDescriptions
-的描述,以相同的顺序与itemNames的包含在由该所述的复合数据值的项目CompositeType
实例;
应该与itemNames大小相同;
没有元素可以为null或空字符串。
itemTypes
- 打开类型的实例,与itemNames的顺序相同,描述由此CompositeType
实例描述的复合数据值中包含的项目;
应该与itemNames大小相同;
没有元素可以为null。
IllegalArgumentException
- 如果
typeName或
description是空字符串或空字符串,或者
itemNames或
itemDescriptions或
itemTypes为null,或者
itemNames或
itemDescriptions的任何元素为空字符串或空字符串,或者
itemTypes的任何元素为null或
itemNames或
itemDescriptions或
itemTypes不一样大小。
OpenDataException
- 如果
itemNames包含重复的项目名称(区分大小写,但删除前导和尾随的空格)。
public boolean containsKey(String itemName)
CompositeType
实例定义名称为
itemName的项目,则返回
true
。
itemName
- 项目的名称。
public String getDescription(String itemName)
null
如果这
CompositeType
实例不定义其名称为
itemName的任何项目。
itemName
- 项目的名称。
public OpenType<?> getType(String itemName)
null
如果这
CompositeType
实例不定义其名称为
itemName的任何项目。
itemName
- 时间的名称。
public boolean isValue(Object obj)
CompositeType
实例描述。
如果obj为空或不是javax.management.openmbean.CompositeData
的实例, javax.management.openmbean.CompositeData
isValue
返回false
。
如果obj是javax.management.openmbean.CompositeData
一个实例,那么让ct
成为CompositeType
返回的CompositeType 。 如果this
可从 ct
this
则结果为真。 这意味着:
this.getTypeName()
等于ct.getTypeName()
,和 this
中没有任何项目名称不存在于ct
,而 this
中的每个项目,其类型可以从ct中的相应项目的类型ct
。 甲TabularType
是从另一个可分配的TabularType
如果它们具有相同的typeName和index name list ,和row type第一个是从该行类型的第二分配。
ArrayType
可以从另一个ArrayType
如果他们有相同的dimension ; 两者都是primitive arrays或者也不是; 和element type第一个是从所述第二的元素类型分配。
在其他情况下,只有在相等的情况下, OpenType
才能从另一个OpenType
。
这些规则意味着额外的项目可以添加到CompositeData
而不会对没有这些项目的CompositeType
无效。
isValue
在
OpenType<CompositeData>
obj
- 要与该
CompositeType
实例兼容的开放类型的值。
true
如果
obj是此复合类型的值,
false
false。
public boolean equals(Object obj)
obj
参数与此CompositeType
实例进行比较以获得相等性。
两个CompositeType
实例相等,当且仅当以下所有语句都为真时:
equals
在
OpenType<CompositeData>
obj
- 要与此CompositeType
实例相等的对象;
如果obj为null
, equals
返回false
。
true
如果指定的对象等于这个
CompositeType
实例。
Object.hashCode()
, HashMap
public int hashCode()
CompositeType
实例的哈希码值。
一个的哈希码CompositeType
实例中使用的所有信息元素的哈希码的总和equals
比较(即:姓名,物品名称,物品类型)。 这确保了t1.equals(t2)
意味着t1.hashCode()==t2.hashCode()
对于任何两个CompositeType
实例t1
和t2
,根据方法Object.hashCode()
的一般合同的要求 。
由于CompositeType
实例是不可变的,所以在第一次调用hashCode
时,该实例的哈希码将被计算一次,然后为后续调用返回相同的值。
hashCode
在
OpenType<CompositeData>
CompositeType
实例的哈希码值
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String toString()
CompositeType
实例的字符串表示形式。
字符串表示由此类的名称(即javax.management.openmbean.CompositeType
),此实例的类型名称以及此实例的项名称和类型字符串表示形式的列表组成。
由于CompositeType
实例是不可变的,所以在第一次调用toString
时,会计算一次此实例的字符串表示toString
,然后为后续调用返回相同的值。
toString
在
OpenType<CompositeData>
CompositeType
实例的字符串表示形式