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);
ALLOWED_CLASSNAMES, ALLOWED_CLASSNAMES_LIST
Constructor and Description |
---|
ArrayType(int dimension, OpenType<?> elementType)
建立了描述与元素的开放式维
维阵列开放数据值
ArrayType实例
ElementType。
|
ArrayType(SimpleType<?> elementType, boolean primitiveArray)
构建了供应
SimpleType 一维
ArrayType 实例。
|
Modifier and Type | Method and Description |
---|---|
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 实例的字符串表示形式。
|
getClassName, getDescription, getTypeName, isArray
public ArrayType(int dimension, OpenType<?> elementType) throws OpenDataException
当调用一个ArrayType实例,getClassName
方法返回的数组的实例描述了类的名字(以下由java.lang.Class
的getName
方法定义的规则),而不是数组元素的类名称(这是由一个叫getElementOpenType().getClassName()返回)。
对应于这ArrayType
实例的类型名称的内部字段也设置为数组的实例描述了类的名字。换句话说,这个方法getClassName
和getTypeName
返回相同的字符串值。对应于这ArrayType
实例描述内部字段设置为字符串值以下的模板:
作为一个例子,下面的代码:
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
-开放式;必须是
SimpleType,
CompositeType实例,
TabularType或另一个
ArrayType与
SimpleType,
CompositeType或
TabularType为
elementType。
IllegalArgumentException
-如果
dimension
不是正整数。
OpenDataException
-如果
定义的类名不允许使用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<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
ArrayType
实例描述了
elementType
-数组元素的值的
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不为空,此方法返回true
,obj是数组和下列任何一个true:
ArrayType
实例描述了SimpleType元素或其相应的原始类型的数组,obj的类的名称是该ArrayType
实例定义的类名相同场(由getClassName
方法,包括尺寸信息返回即类名),ArrayType
实例介绍了课程实施TabularData
接口或CompositeData
接口的数组,obj转让给这样一个声明数组,每个元素包含在{ obj是null或有效值为元素的开放式规定的ArrayType
实例。public boolean equals(Object obj)
obj
参数与本
ArrayType
实例为平等。
两ArrayType
实例相等当且仅当他们描述数组实例具有相同的尺寸,开放式元素和原始数组标记。
equals
方法重写,继承类
OpenType<T>
obj
要比较这
ArrayType
实例平等的对象;如果
obj是
null
或不是一个类的实例
ArrayType
此方法返回
false
。
true
指定对象是否等于这
ArrayType
实例。
Object.hashCode()
,
HashMap
public int hashCode()
ArrayType
。
一个ArrayType
实例的哈希代码是用于equals
比较信息元素的散列码的总和(即维度、要素开放型和原始数组标记)。对一个原始值hashCode是相应的hashCode装箱的对象(例如hashCode为true是Boolean.TRUE.hashCode())。这确保 t1.equals(t2)
意味着 t1.hashCode()==t2.hashCode()
任何两ArrayType
实例t1
和t2
,的方法Object.hashCode()
一般合同要求。
作为ArrayType
实例是不可变的,此实例的哈希代码是计算一次,在hashCode
第一次调用,然后返回相同的值的后续调用。
hashCode
方法重写,继承类
OpenType<T>
ArrayType
实例的哈希代码值
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String toString()
ArrayType
实例的字符串表示形式。
字符串表示的类的名字(即javax.management.openmbean.ArrayType
)、类型名称、尺寸、元素的开放型和原始数组标记定义此实例。
作为ArrayType
实例是不可变的,此实例的字符串表示形式是计算一次,在toString
第一次调用,然后返回相同的值的后续调用。
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
elementType
-开放式;必须是
SimpleType,
CompositeType实例,
TabularType或另一个
ArrayType与
SimpleType,
CompositeType或
TabularType为
elementType。
OpenDataException
-如果
定义的类名不允许使用java类名为开放数据。
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
arrayClass
-原始数组类如
int[].class
,
boolean[][].class
,等返回的
ArrayType
的
getElementOpenType()
方法返回相应的数组的原始类型的包装类型的
SimpleType
。
IllegalArgumentException
-如果
arrayclass不是原始数组。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.