- java.lang.Object
-
- javax.management.openmbean.OpenType<T>
-
- javax.management.openmbean.ArrayType<T>
-
- 实现的所有接口
-
Serializable
public class ArrayType<T> extends OpenType<T>
所述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
- 另请参见:
- Serialized Form
-
-
字段汇总
-
声明的属性在类 javax.management.openmbean.OpenType
ALLOWED_CLASSNAMES, ALLOWED_CLASSNAMES_LIST
-
-
构造方法摘要
构造方法 构造器 描述 ArrayType(int dimension, OpenType<?> elementType)
构造一个描述 开放数据值的ArrayType
实例,该实例是具有元素维度 维度的数组,其 开放类型为 elementType 。ArrayType(SimpleType<?> elementType, boolean primitiveArray)
为提供的SimpleType
构造一维ArrayType
实例。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 boolean
equals(Object obj)
将指定的obj
参数与此ArrayType
实例进行比较以获得相等性。static <E> ArrayType<E[]>
getArrayType(OpenType<E> elementType)
以类型安全的方式创建ArrayType
实例。int
getDimension()
返回此ArrayType
实例描述的数组的维度。OpenType<?>
getElementOpenType()
返回此ArrayType
实例描述的数组中包含的元素值的 开放类型 。static <T> ArrayType<T>
getPrimitiveArrayType(类<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
-
-
-
-
构造方法详细信息
-
ArrayType
public ArrayType(int dimension, OpenType<?> elementType) throws OpenDataException
构造一个描述开放数据值的ArrayType
实例,该实例是具有开放类型为elementType的元素的维度维度的数组。在
ArrayType
实例上调用时,getClassName
方法返回它描述的数组实例的类名(遵循getName
方法java.lang.Class
定义的规则),而不是数组元素的类名(通过调用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的className不是打开数据的允许Java类名称之一。
- 如果是非原始数组:
-
ArrayType
public ArrayType(SimpleType<?> elementType, boolean primitiveArray) throws OpenDataException
为提供的SimpleType
构造一维ArrayType
实例。当
primitiveArray
是true
时,此构造函数支持创建基本类型数组。对于原始数组,
getElementOpenType()
方法返回对应于数组基元类型的包装类型的SimpleType
。当被调用的
ArrayType
例如,getClassName
方法返回它所描述的阵列的实例(以下由定义的规则的类名getName
的方法java.lang.Class
),而不是数组元素的类名(其通过调用返回到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
-所述SimpleType
包含在由该所述阵列中的元素值的ArrayType
实例。 -
primitiveArray
-true
此数组描述原始数组。 - 异常
-
IllegalArgumentException
- 如果dimension
不是正整数。 -
OpenDataException
-如果primitiveArray
为true
和elementType
不是有效SimpleType
的基本类型。 - 从以下版本开始:
- 1.6
- 如果是非原始数组:
-
-
方法详细信息
-
getDimension
public int getDimension()
返回此ArrayType
实例描述的数组的维度。- 结果
- 维度。
-
getElementOpenType
public OpenType<?> getElementOpenType()
返回此ArrayType
实例描述的数组中包含的元素值的 开放类型 。- 结果
- 元素类型。
-
isPrimitiveArray
public boolean isPrimitiveArray()
返回true
如果此开放类型描述的开放数据值是原始阵列,false
否则。- 结果
- 如果这是一个基本数组类型,则返回true。
- 从以下版本开始:
- 1.6
-
isValue
public boolean isValue(Object obj)
测试obj是否为此ArrayType
实例的值。当且仅当obj不为null时,此方法返回
true
, obj是一个数组,并且以下任何一个都是true
:- 如果此
ArrayType
实例描述了SimpleType
元素的数组或其对应的基元类型,则obj的类名与为此ArrayType
实例定义的className字段相同(即getClassName
方法返回的类名,包括维度信息) , - 如果此
ArrayType
实例描述了实现TabularData
接口或CompositeData
接口的类数组,则obj可分配给此类声明的数组,并且{ obj中包含的每个元素都为null或此ArrayType
指定的元素的开放类型的ArrayType
实例。
- 如果此
-
equals
public boolean equals(Object obj)
将指定的obj
参数与此ArrayType
实例进行比较以获得相等性。当且仅当它们描述具有相同维度的数组实例,元素的开放类型和基本数组标志时,两个
ArrayType
实例是相等的。- Specified by:
-
equals
类OpenType<T>
- 参数
-
obj
- 要与此ArrayType
实例进行相等性比较的对象; 如果obj是null
或者不是类ArrayType
的实例,则此方法返回false
。 - 结果
-
true
如果指定的对象等于此ArrayType
实例。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此ArrayType
实例的哈希码值。ArrayType
实例的哈希码是equals
比较中使用的所有信息元素的哈希码的总和(即维度,元素的开放类型和原始数组标志)。 原始值的哈希码是对应的盒装对象的哈希true
(例如,true
的哈希true
是Boolean.TRUE.hashCode()
)。 这确保了t1.equals(t2)
意味着t1.hashCode()==t2.hashCode()
对于任何两个ArrayType
实例t1
和t2
,所要求的方法的常规合同Object.hashCode()
。由于
ArrayType
实例是不可变的,因此在第一次调用hashCode
,此实例的哈希码计算一次,然后为后续调用返回相同的值。- 重写:
-
hashCode
在类Object
- 结果
-
此
ArrayType
实例的哈希码值 - 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String toString()
返回此ArrayType
实例的字符串表示形式。字符串表示由此类的名称(即
javax.management.openmbean.ArrayType
),类型名称,维度,元素的开放类型以及为此实例定义的基本数组标志组成。由于
ArrayType
实例是不可变的,因此在第一次调用toString
,将计算此实例的字符串表示形式一次,然后为后续调用返回相同的值。
-
getArrayType
public static <E> ArrayType<E[]> getArrayType(OpenType<E> elementType) throws OpenDataException
以类型安全的方式创建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的className不是打开数据的允许Java类名称之一。 - 从以下版本开始:
- 1.6
-
getPrimitiveArrayType
public static <T> ArrayType<T> getPrimitiveArrayType(类<T> arrayClass)
以类型安全的方式创建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
等getElementOpenType()
返回的方法ArrayType
返回SimpleType
对应于包装类型基本类型的数组的。 - 结果
-
一个
ArrayType
实例 - 异常
-
IllegalArgumentException
- 如果 arrayClass不是基本数组。 - 从以下版本开始:
- 1.6
-
-