- 类型参数:
T
- 此 ArrayType 描述的数组必须具有的 Java 组件类型。
- 所有已实现的接口:
Serializable
ArrayType
类是开放式其实例描述所有的类开放数据值是 n 维数组开放数据值。
有效的 ArrayType
实例示例如下:
// 2-dimension array of java.lang.String
ArrayType<String[][]> a1 = new ArrayType<String[][]>(2, SimpleType.STRING);
// 1-dimension array of int
ArrayType<int[]> a2 = new ArrayType<int[]>(SimpleType.INTEGER, true);
// 1-dimension array of java.lang.Integer
ArrayType<Integer[]> a3 = new ArrayType<Integer[]>(SimpleType.INTEGER, false);
// 4-dimension array of int
ArrayType<int[][][][]> a4 = new ArrayType<int[][][][]>(3, a2);
// 4-dimension array of java.lang.Integer
ArrayType<Integer[][][][]> a5 = new ArrayType<Integer[][][][]>(3, a3);
// 1-dimension array of java.lang.String
ArrayType<String[]> a6 = new ArrayType<String[]>(SimpleType.STRING, false);
// 1-dimension array of long
ArrayType<long[]> a7 = new ArrayType<long[]>(SimpleType.LONG, true);
// 1-dimension array of java.lang.Integer
ArrayType<Integer[]> a8 = ArrayType.getArrayType(SimpleType.INTEGER);
// 2-dimension array of java.lang.Integer
ArrayType<Integer[][]> a9 = ArrayType.getArrayType(a8);
// 2-dimension array of int
ArrayType<int[][]> a10 = ArrayType.getPrimitiveArrayType(int[][].class);
// 3-dimension array of int
ArrayType<int[][][]> a11 = ArrayType.getArrayType(a10);
// 1-dimension array of float
ArrayType<float[]> a12 = ArrayType.getPrimitiveArrayType(float[].class);
// 2-dimension array of float
ArrayType<float[][]> a13 = ArrayType.getArrayType(a12);
// 1-dimension array of javax.management.ObjectName
ArrayType<ObjectName[]> a14 = ArrayType.getArrayType(SimpleType.OBJECTNAME);
// 2-dimension array of javax.management.ObjectName
ArrayType<ObjectName[][]> a15 = ArrayType.getArrayType(a14);
// 3-dimension array of java.lang.String
ArrayType<String[][][]> a16 = new ArrayType<String[][][]>(3, SimpleType.STRING);
// 1-dimension array of java.lang.String
ArrayType<String[]> a17 = new ArrayType<String[]>(1, SimpleType.STRING);
// 2-dimension array of java.lang.String
ArrayType<String[][]> a18 = new ArrayType<String[][]>(1, a17);
// 3-dimension array of java.lang.String
ArrayType<String[][][]> a19 = new ArrayType<String[][][]>(1, a18);
- 自从:
- 1.5
- 参见:
-
字段摘要
在类 javax.management.openmbean.OpenType 中声明的字段
ALLOWED_CLASSNAMES, ALLOWED_CLASSNAMES_LIST
-
构造方法总结
构造方法构造方法描述构造一个ArrayType
实例描述开放数据值是具有维度的数组方面元素的开放式是元素类型.ArrayType
(SimpleType<?> elementType, boolean primitiveArray) 为提供的SimpleType
构造一维ArrayType
实例。 -
方法总结
修饰符和类型方法描述boolean
比较指定的obj
参数与此ArrayType
实例是否相等。static <E> ArrayType<E[]>
getArrayType
(OpenType<E> elementType) 以类型安全的方式创建一个ArrayType
实例。int
返回此ArrayType
实例描述的数组的维度。OpenType<?>
返回开放式此ArrayType
实例描述的数组中包含的元素值。static <T> ArrayType<T>
getPrimitiveArrayType
(Class<T> arrayClass) 以类型安全的方式创建一个ArrayType
实例。int
hashCode()
返回此ArrayType
实例的哈希码值。boolean
如果此开放类型描述的开放数据值是原始数组,则返回true
,否则返回false
。boolean
测试是否对象是这个ArrayType
实例的值。toString()
返回此ArrayType
实例的字符串表示形式。在类 javax.management.openmbean.OpenType 中声明的方法
getClassName, getDescription, getTypeName, isArray
-
构造方法详细信息
-
ArrayType
构造一个ArrayType
实例描述开放数据值是具有维度的数组方面元素的开放式是元素类型.当在
ArrayType
实例上调用时,getClassName
方法返回它描述的数组实例的类名(遵循java.lang.Class
的getName
方法定义的规则),而不是数组元素的类名(通过调用getElementOpenType().getClassName()
返回) ).这个
ArrayType
实例的类型名对应的内部字段也被设置为它描述的数组实例的类名。换句话说,方法getClassName
和getTypeName
返回相同的字符串值。与此ArrayType
实例的描述相对应的内部字段设置为遵循以下模板的字符串值:- 如果是非原始数组:
<dimension>-dimension array of <element_class_name>
- 如果原始数组:
<dimension>-dimension array of <primitive_type_of_the_element_class_name>
例如,下面的一段代码:
会产生以下输出:ArrayType<String[][][]> t = new ArrayType<String[][][]>(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
ArrayType<String[]> t1 = new ArrayType<String[]>(1, SimpleType.STRING); ArrayType<String[][]> t2 = new ArrayType<String[][]>(1, t1); ArrayType<String[][][]> t3 = new ArrayType<String[][][]>(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
或另一个ArrayType
的实例,其中SimpleType
、CompositeType
或TabularType
作为其elementType
。- 抛出:
IllegalArgumentException
- 如果dimension
不是正整数。OpenDataException
- 如果elementType 的类名不是开放数据允许的 Java 类名之一。
- 如果是非原始数组:
-
ArrayType
为提供的SimpleType
构造一维ArrayType
实例。当
primitiveArray
为true
时,此构造函数支持创建基本类型数组。对于原始数组,
getElementOpenType()
方法返回对应于数组原始类型的包装器类型的SimpleType
。当在
ArrayType
实例上调用时,getClassName
方法返回它描述的数组实例的类名(遵循java.lang.Class
的getName
方法定义的规则),而不是数组元素的类名(通过调用getElementOpenType().getClassName()
返回) ).这个
ArrayType
实例的类型名对应的内部字段也被设置为它描述的数组实例的类名。换句话说,方法getClassName
和getTypeName
返回相同的字符串值。与此ArrayType
实例的描述相对应的内部字段设置为遵循以下模板的字符串值:- 如果是非原始数组:
1-dimension array of <element_class_name>
- 如果原始数组:
1-dimension array of <primitive_type_of_the_element_class_name>
例如,下面的一段代码:
会产生以下输出:ArrayType<int[]> t = new ArrayType<int[]>(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
。- 自从:
- 1.6
- 如果是非原始数组:
-
-
方法详情
-
getDimension
public int getDimension()返回此ArrayType
实例描述的数组的维度。- 返回:
- 维度。
-
getElementOpenType
返回开放式此ArrayType
实例描述的数组中包含的元素值。- 返回:
- 元素类型。
-
isPrimitiveArray
public boolean isPrimitiveArray()如果此开放类型描述的开放数据值是原始数组,则返回true
,否则返回false
。- 返回:
- 如果这是原始数组类型,则为真。
- 自从:
- 1.6
-
isValue
测试是否对象是这个ArrayType
实例的值。此方法返回
true
当且仅当对象不为空,对象是一个数组,以下任何一个是true
:- 如果这个
ArrayType
实例描述了一个SimpleType
元素数组或其对应的原始类型,对象的类名与为这个ArrayType
实例定义的className字段相同(即getClassName
方法返回的类名,包含维度信息),
- 如果这个
ArrayType
实例描述了一个实现TabularData
接口或CompositeData
接口的类数组,对象可以分配给这样一个声明的数组,并且包含在{中的每个元素对象为 null 或此ArrayType
实例指定的元素的开放类型的有效值。
- 如果这个
-
equals
比较指定的obj
参数与此ArrayType
实例是否相等。当且仅当两个
ArrayType
实例描述的数组实例具有相同的维度、元素的开放类型和原始数组标志时,它们才相等。 -
hashCode
public int hashCode()返回此ArrayType
实例的哈希码值。ArrayType
实例的哈希码是equals
比较中使用的所有信息元素的哈希码的总和(即维度、元素的开放类型和原始数组标志)。原始值的哈希码是相应装箱对象的哈希码(例如true
的哈希码是Boolean.TRUE.hashCode()
)。这确保t1.equals(t2)
暗示t1.hashCode()==t2.hashCode()
对于任何两个ArrayType
实例t1
和t2
,正如方法Object.hashCode()
的一般契约所要求的那样。由于
ArrayType
实例是不可变的,因此该实例的哈希码在第一次调用hashCode
时计算一次,然后为后续调用返回相同的值。 -
toString
返回此ArrayType
实例的字符串表示形式。字符串表示由此类的名称(即
javax.management.openmbean.ArrayType
)、类型名称、维度、元素的开放类型和为此实例定义的原始数组标志组成。由于
ArrayType
实例是不可变的,因此该实例的字符串表示在第一次调用toString
时计算一次,然后为后续调用返回相同的值。 -
getArrayType
以类型安全的方式创建一个ArrayType
实例。可以根据需要多次调用此方法来构建多维数组。
使用相同的参数调用此方法两次可能会返回相同的对象或两个相等但不相同的对象。
例如,下面的一段代码:
会产生以下输出:ArrayType<String[]> t1 = ArrayType.getArrayType(SimpleType.STRING); ArrayType<String[][]> t2 = ArrayType.getArrayType(t1); ArrayType<String[][][]> 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
- 类型参数:
E
- 描述实例必须具有的 Java 类型- 参数:
elementType
- 的开放式此ArrayType
实例描述的数组中包含的元素值;必须是SimpleType
、CompositeType
、TabularType
或另一个ArrayType
的实例,其中SimpleType
、CompositeType
或TabularType
作为其elementType
。- 返回:
-
一个
ArrayType
实例 - 抛出:
OpenDataException
- 如果elementType 的类名不是开放数据允许的 Java 类名之一。- 自从:
- 1.6
-
getPrimitiveArrayType
以类型安全的方式创建一个ArrayType
实例。使用相同的参数调用此方法两次可能会返回相同的对象或两个相等但不相同的对象。
例如,下面的一段代码:
会产生以下输出:ArrayType<int[][][]> 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
- 类型参数:
T
- 描述实例必须具有的 Java 类型- 参数:
arrayClass
- 原始数组类如int[].class
、boolean[][].class
等。返回的ArrayType
的getElementOpenType()
方法返回数组原始类型的包装器类型对应的SimpleType
。- 返回:
-
一个
ArrayType
实例 - 抛出:
IllegalArgumentException
- 如果数组类不是原始数组。- 自从:
- 1.6
-