java.lang.Object
javax.management.openmbean.OpenType<T>
- 类型参数:
-
T
- 描述此类型实例必须具有的Java类型。例如,SimpleType.INTEGER
是一个SimpleType<Integer>
,它是OpenType<Integer>
的子类,这意味着被描述为SimpleType.INTEGER
的属性、参数或返回值必须具有Java类型Integer
。
- 所有已实现的接口:
-
Serializable
- 直接已知子类:
-
ArrayType
,CompositeType
,SimpleType
,TabularType
OpenType
类是描述开放数据值的实际开放类型的所有类的父抽象类。
开放类型由以下内容定义:
- 此类型描述的开放数据值的完全限定Java类名;请注意,仅允许一组有限的Java类用于开放数据值(请参阅
ALLOWED_CLASSNAMES_LIST
), - 它的名称,
- 它的描述。
- 自版本:
- 1.5
- 另请参阅:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract boolean
将指定的obj
参数与此开放类型实例进行比较以判断是否相等。返回此开放类型描述的开放数据值的完全限定Java类名。返回此OpenType
实例的文本描述。返回此OpenType
实例的名称。abstract int
hashCode()
为对象返回哈希码值。boolean
isArray()
如果此开放类型描述的开放数据值是数组,则返回true
,否则返回false
。abstract boolean
测试obj是否为此开放类型的值。abstract String
toString()
返回此开放类型实例的字符串表示形式。
-
Field Details
-
ALLOWED_CLASSNAMES_LIST
允许用于开放数据值的Java类的完全限定名称列表。这些类或其对应的基本类型的多维数组也是开放数据值的允许类。ALLOWED_CLASSNAMES_LIST = { "java.lang.Void", "java.lang.Boolean", "java.lang.Character", "java.lang.Byte", "java.lang.Short", "java.lang.Integer", "java.lang.Long", "java.lang.Float", "java.lang.Double", "java.lang.String", "java.math.BigDecimal", "java.math.BigInteger", "java.util.Date", "javax.management.ObjectName", CompositeData.class.getName(), TabularData.class.getName() } ;
-
ALLOWED_CLASSNAMES
Deprecated.UseALLOWED_CLASSNAMES_LIST
instead.
-
-
Constructor Details
-
OpenType
构造一个OpenType
实例(实际上是一个子类实例,因为OpenType
是抽象的),检查给定参数的有效性。下面描述了每个参数的有效性约束。
- 参数:
-
className
- 此开放类型描述的开放数据值的完全限定Java类名。允许用于开放数据值的有效Java类名列在ALLOWED_CLASSNAMES_LIST
中。任何这些类或其对应的基本类型的多维数组也是允许的类,此时类名遵循java.lang.Class
的getName()
方法定义的规则。例如,字符串的三维数组的类名为"[[[Ljava.lang.String;
"(不包括引号)。
-
typeName
- 此实例表示的开放类型的名称;不能为null或空字符串。
-
description
- 此实例表示的开放类型的人类可读描述;不能为null或空字符串。
- 抛出:
-
IllegalArgumentException
- 如果className、typeName或description为null或空字符串
-
OpenDataException
- 如果className不是允许的开放数据的Java类名之一
-
-
Method Details
-
getClassName
返回此开放类型描述的开放数据值的完全限定Java类名。仅允许用于开放数据值的Java类名列在ALLOWED_CLASSNAMES_LIST
中。任何这些类或其对应的基本类型的多维数组也是允许的类,此时类名遵循java.lang.Class
的getName()
方法定义的规则。例如,字符串的三维数组的类名为"[[[Ljava.lang.String;
"(不包括引号),整数的三维数组的类名为"[[[Ljava.lang.Integer;
"(不包括引号),int的三维数组的类名为"[[[I
"(不包括引号)- 返回:
- 类名。
-
getTypeName
返回此OpenType
实例的名称。- 返回:
- 类型名称。
-
getDescription
返回此OpenType
实例的文本描述。- 返回:
- 描述。
-
isArray
public boolean isArray()如果此开放类型描述的开放数据值是数组,则返回true
,否则返回false
。- 返回:
- 如果这是一个数组类型,则返回true。
-
isValue
测试obj是否为此开放类型的值。- 参数:
-
obj
- 要测试有效性的对象。 - 返回:
-
如果obj是此开放类型的值,则返回
true
,否则返回false
。
-
equals
将指定的obj
参数与此开放类型实例进行比较以判断是否相等。 -
hashCode
public abstract int hashCode()从类中复制的描述:Object
为对象返回哈希码值。此方法支持哈希表(如HashMap
)等的好处。hashCode
的一般约定是:- 在Java应用程序的执行期间,如果在同一对象上多次调用
hashCode
方法,则只要对象上用于equals
比较的信息未被修改,hashCode
方法必须始终一致地返回相同的整数。这个整数不需要在应用程序的一个执行到另一个执行之间保持一致。 - 如果两个对象根据
equals
方法是相等的,则在这两个对象的每个对象上调用hashCode
方法必须产生相同的整数结果。 - 如果根据
equals
方法两个对象是不相等的,则不需要hashCode
方法在这两个对象的每个对象上产生不同的整数结果。但是,程序员应该注意,对于不相等的对象产生不同的整数结果可能会提高哈希表的性能。
- 在Java应用程序的执行期间,如果在同一对象上多次调用
-
toString
返回此开放类型实例的字符串表示形式。
-
ALLOWED_CLASSNAMES_LIST
。