|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.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 实例指定元素的开放类型的有效值。
OpenType<T> 中的 isValueobj - 要测试的对象。
ArrayType 实例的一个值,则返回 true。public boolean equals(Object obj)
obj 参数与此 ArrayType 实例的相等性。
当且仅当两个 ArrayType 实例描述具有相同维度、元素的开放类型以及基本类型数组标记的数组实例时,它们才相等。
OpenType<T> 中的 equalsobj - 与此 ArrayType 实例比较相等性的对象;如果 obj 为 null,或者不是类 ArrayType 的一个实例,则此方法返回 false。
ArrayType 实例,则返回 true。Object.hashCode(),
Hashtablepublic int hashCode()
ArrayType 实例的哈希码值。
ArrayType 实例的哈希码是在 equals 比较中使用的信息的所有元素的哈希码总和(即维度、元素的开放类型和基本类型数组标记)。基本类型值的哈希码是其对应装箱对象的哈希码(例如,true 的哈希码为 Boolean.TRUE.hashCode())。这确保 t1.equals(t2) 意味着对于任何两个 ArrayType 实例 t1 和 t2 而言,都存在 t1.hashCode()==t2.hashCode(),这是方法 Object.hashCode() 的通用协定所要求的。
由于 ArrayType 实例是不可变的,此实例的哈希码在首次调用 hashCode 时计算一次,然后对于后续的调用返回相同的值。
OpenType<T> 中的 hashCodeArrayType 实例的哈希码值Object.equals(java.lang.Object),
Hashtablepublic String toString()
ArrayType 实例的字符串表示形式。
字符串表示形式由此类(即 javax.management.openmbean.ArrayType)的名称,以及为此实例定义的类型名称、维度、元素的开放类型和基本类型数组标记组成。
由于 ArrayType 实例是不可变的,此实例的字符串表示形式在首次调用 toString 时计算一次,然后对于后续的调用返回相同的值。
OpenType<T> 中的 toStringArrayType 实例的字符串表示形式
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 不是基本类型数组。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。