java.lang.Object javax.management.openmbean.OpenType<T> javax.management.openmbean.ArrayType<T>
public class ArrayType<T>
ArrayType
类是一种开放类型 类,其实例描述了作为开放数据 值的 n 维数组的所有开放数据 值。
有效 ArrayType
实例的示例有:
// 2-dimension array of java.lang.String ArrayTypea1 = new ArrayType (2, SimpleType.STRING); // 1-dimension array of int ArrayType a2 = new ArrayType (SimpleType.INTEGER, true); // 1-dimension array of java.lang.Integer ArrayType a3 = new ArrayType (SimpleType.INTEGER, false); // 4-dimension array of int ArrayType a4 = new ArrayType (3, a2); // 4-dimension array of java.lang.Integer ArrayType a5 = new ArrayType (3, a3); // 1-dimension array of java.lang.String ArrayType a6 = new ArrayType (SimpleType.STRING, false); // 1-dimension array of long ArrayType a7 = new ArrayType (SimpleType.LONG, true); // 1-dimension array of java.lang.Integer ArrayType a8 = ArrayType.getArrayType(SimpleType.INTEGER); // 2-dimension array of java.lang.Integer ArrayType a9 = ArrayType.getArrayType(a8); // 2-dimension array of int ArrayType a10 = ArrayType.getPrimitiveArrayType(int[][].class); // 3-dimension array of int ArrayType a11 = ArrayType.getArrayType(a10); // 1-dimension array of float ArrayType a12 = ArrayType.getPrimitiveArrayType(float[].class); // 2-dimension array of float ArrayType a13 = ArrayType.getArrayType(a12); // 1-dimension array of javax.management.ObjectName ArrayType a14 = ArrayType.getArrayType(SimpleType.OBJECTNAME); // 2-dimension array of javax.management.ObjectName ArrayType a15 = ArrayType.getArrayType(a14); // 3-dimension array of java.lang.String ArrayType a16 = new ArrayType (3, SimpleType.STRING); // 1-dimension array of java.lang.String ArrayType a17 = new ArrayType (1, SimpleType.STRING); // 2-dimension array of java.lang.String ArrayType a18 = new ArrayType (1, a17); // 3-dimension array of java.lang.String ArrayType a19 = new ArrayType (1, a18);
字段摘要 |
---|
从类 javax.management.openmbean.OpenType 继承的字段 |
---|
ALLOWED_CLASSNAMES, ALLOWED_CLASSNAMES_LIST |
构造方法摘要 | |
---|---|
ArrayType(int dimension, OpenType<?> elementType) 构造一个描述开放数据 值的 ArrayType 实例,该值是其元素的开放类型 为 elementType、元素的维度为 dimension 的数组。 |
|
ArrayType(SimpleType<?> elementType, boolean primitiveArray) 为提供的 SimpleType 构造一个一维 ArrayType 实例。 |
方法摘要 | ||
---|---|---|
boolean |
equals(Object obj) 比较指定的 obj 参数与此 ArrayType 实例的相等性。 |
|
static
|
getArrayType(OpenType<E> elementType) 以类型安全的方式创建一个 ArrayType 实例。 |
|
int |
getDimension() 返回此 ArrayType 实例描述的数组的维度。 |
|
OpenType<?> |
getElementOpenType() 返回此 ArrayType 实例描述的数组中包含的元素值的开放类型。 |
|
static
|
getPrimitiveArrayType(Class<T> arrayClass) 以类型安全的方式创建一个 ArrayType 实例。 |
|
int |
hashCode() 返回此 ArrayType 实例的哈希码值。 |
|
boolean |
isPrimitiveArray() 如果此开放类型描述的开放数据值是基本类型数组,则返回 true ;否则返回 false 。 |
|
boolean |
isValue(Object obj) 测试 obj 是否为此 ArrayType 实例的值。 |
|
String |
toString() 返回此 ArrayType 实例的字符串表示形式。 |
从类 javax.management.openmbean.OpenType 继承的方法 |
---|
getClassName, getDescription, getTypeName, isArray |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public ArrayType(int dimension, OpenType<?> elementType) throws OpenDataException
在 ArrayType 实例上调用时,getClassName
方法会返回它所描述的数组实例的类名(按照 java.lang.Class
的 getName
方法定义的规则),而不是数组元素的类名(由对 getElementOpenType().getClassName() 的调用返回)。
还可以将对应于此 ArrayType
实例类型名称的内部字段设置为它描述的数组实例的类名。换句话说,方法 getClassName
和 getTypeName
返回相同的字符串值。将对应于此 ArrayType
实例的描述的内部字段设置为符合以下模板的字符串值:
例如,以下代码片段:
ArrayType将得到以下输出:t = new ArrayType (3, SimpleType.STRING); System.out.println("array class name = "+ t.getClassName()); System.out.println("element class name = "+ t.getElementOpenType().getClassName()); System.out.println("array type name = "+ t.getTypeName()); System.out.println("array type description = "+ t.getDescription());
array class name = [[[Ljava.lang.String; element class name = java.lang.String array type name = [[[Ljava.lang.String; array type description = 3-dimension array of java.lang.String以下代码片段(与上述代码片段等效)也能得到相同的输出:
ArrayTypet1 = new ArrayType (1, SimpleType.STRING); ArrayType t2 = new ArrayType (1, t1); ArrayType t3 = new ArrayType (1, t2); System.out.println("array class name = " + t3.getClassName()); System.out.println("element class name = " + t3.getElementOpenType().getClassName()); System.out.println("array type name = " + t3.getTypeName()); System.out.println("array type description = " + t3.getDescription());
dimension
- 此
ArrayType 实例描述的数组的维度;必须大于或等于 1。
elementType
- 此
ArrayType 实例描述的数组中包含的元素值的
开放类型;必须是
SimpleType、
CompositeType、
TabularType 的一个实例,或者另一个以
SimpleType、
CompositeType 或
TabularType 作为其
elementType 的
ArrayType。
IllegalArgumentException
- 如果
dimension
不是一个正整数。
OpenDataException
- 如果
elementType 的 className 不是一个受允许的开放数据 Java 类名称。
public ArrayType(SimpleType<?> elementType, boolean primitiveArray) throws OpenDataException
SimpleType
构造一个一维
ArrayType
实例。
primitiveArray
为 true
时此构造方法支持创建基本类型数组。
对于基本类型数组,getElementOpenType()
方法返回对应于基本类型数组的包装器类型的 SimpleType
。
在 ArrayType 实例上调用时,getClassName
方法会返回它描述的数组实例的类名(按照 java.lang.Class
的 getName
方法定义的规则),而不是数组元素的类名(由对 getElementOpenType().getClassName() 的调用返回)。
还可以将对应于此 ArrayType
实例类型名称的内部字段设置为它描述的数组实例的类名。换句话说,方法 getClassName
和 getTypeName
返回相同的字符串值。将对应于此 ArrayType
实例的描述的内部字段设置为符合以下模板的字符串值:
例如,以下代码片段:
ArrayType将得到以下输出:t = new ArrayType (SimpleType.INTEGER, true); System.out.println("array class name = " + t.getClassName()); System.out.println("element class name = " + t.getElementOpenType().getClassName()); System.out.println("array type name = " + t.getTypeName()); System.out.println("array type description = " + t.getDescription());
array class name = [I element class name = java.lang.Integer array type name = [I array type description = 1-dimension array of int
elementType
- 此
ArrayType
实例描述的数组所包含的元素值的
SimpleType
。
primitiveArray
- 此数组描述基本类型数组时为
true
。
IllegalArgumentException
- 如果
dimension
不是正整数。
OpenDataException
- 如果
primitiveArray
为
true
,且
elementType
不是有效的基本类型
SimpleType
。
方法详细信息 |
---|
public int getDimension()
public OpenType<?> getElementOpenType()
public boolean isPrimitiveArray()
true
;否则返回
false
。
public boolean isValue(Object obj)
ArrayType
实例的值。
当且仅当 obj 不为 null,obj 是一个数组,并且下面任何一个条件为 true 时,此方法才返回 true
:
ArrayType
实例描述 SimpleType 元素或其对应基本类型的数组,则 obj 的类名与此 ArrayType
实例定义的 className 字段相同(即 getClassName
方法返回的类名,它包括维度信息)ArrayType
实例描述实现 TabularData
接口或 CompositeData
接口的类的数组,则 obj 可分配给这样的声明数组,obj 中包含的每个元素或者为 null,或者为此 ArrayType
实例指定元素的开放类型的有效值。
obj
- 要测试的对象。
ArrayType
实例的一个值,则返回
true
。
public boolean equals(Object obj)
obj
参数与此
ArrayType
实例的相等性。
当且仅当两个 ArrayType
实例描述具有相同维度、元素的开放类型以及基本类型数组标记的数组实例时,它们才相等。
obj
- 与此
ArrayType
实例比较相等性的对象;如果
obj 为
null
,或者不是类
ArrayType
的一个实例,则此方法返回
false
。
ArrayType
实例,则返回
true
。
Object.hashCode()
,
Hashtable
public int hashCode()
ArrayType
实例的哈希码值。
ArrayType
实例的哈希码是在 equals
比较中使用的信息的所有元素的哈希码总和(即维度、元素的开放类型和基本类型数组标记)。基本类型值的哈希码是其对应装箱对象的哈希码(例如,true 的哈希码为 Boolean.TRUE.hashCode())。这确保 t1.equals(t2)
意味着对于任何两个 ArrayType
实例 t1
和 t2
而言,都存在 t1.hashCode()==t2.hashCode()
,这是方法 Object.hashCode()
的通用协定所要求的。
由于 ArrayType
实例是不可变的,此实例的哈希码在首次调用 hashCode
时计算一次,然后对于后续的调用返回相同的值。
ArrayType
实例的哈希码值
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
ArrayType
实例的字符串表示形式。
字符串表示形式由此类(即 javax.management.openmbean.ArrayType
)的名称,以及为此实例定义的类型名称、维度、元素的开放类型和基本类型数组标记组成。
由于 ArrayType
实例是不可变的,此实例的字符串表示形式在首次调用 toString
时计算一次,然后对于后续的调用返回相同的值。
ArrayType
实例的字符串表示形式
public static <E> ArrayType<E[]> getArrayType(OpenType<E> elementType) throws OpenDataException
ArrayType
实例。
根据需要多次调用此方法可以创建多维数组。
使用相同的参数调用此方法两次可以返回相同的对象,或者相等但不同的两个对象。
例如,以下代码片段:
ArrayType将得到以下输出:t1 = ArrayType.getArrayType(SimpleType.STRING); ArrayType t2 = ArrayType.getArrayType(t1); ArrayType t3 = ArrayType.getArrayType(t2); System.out.println("array class name = " + t3.getClassName()); System.out.println("element class name = " + t3.getElementOpenType().getClassName()); System.out.println("array type name = " + t3.getTypeName()); System.out.println("array type description = " + t3.getDescription());
array class name = [[[Ljava.lang.String; element class name = java.lang.String array type name = [[[Ljava.lang.String; array type description = 3-dimension array of java.lang.String
elementType
- 此
ArrayType 实例描述的数组中包含的元素值的
开放类型;必须是
SimpleType、
CompositeType、
TabularType 的一个实例,或者另一个以
SimpleType、
CompositeType 或
TabularType 作为其
elementType 的
ArrayType。
OpenDataException
- 如果
elementType 的 className 不是一个受允许的开放数据 Java 类名称。
public static <T> ArrayType<T> getPrimitiveArrayType(Class<T> arrayClass)
ArrayType
实例。
使用相同的参数调用此方法两次可以返回相同的对象,或者相等但不同的两个对象。
例如,以下代码片段:
ArrayType将得到以下输出:t = ArrayType.getPrimitiveArrayType(int[][][].class); System.out.println("array class name = " + t.getClassName()); System.out.println("element class name = " + t.getElementOpenType().getClassName()); System.out.println("array type name = " + t.getTypeName()); System.out.println("array type description = " + t.getDescription());
array class name = [[[I element class name = java.lang.Integer array type name = [[[I array type description = 3-dimension array of int
arrayClass
- 基本类型数组类,如
int[].class
、
boolean[][].class
等等。返回
ArrayType
的
getElementOpenType()
方法将返回对应于基本类型数组包装器类型的
SimpleType
。
IllegalArgumentException
- 如果
arrayClass 不是基本类型数组。