|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
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
實例指定元素的開放型別的有效值。
OpenType<T>
中的 isValue
obj
- 要測試的物件。
ArrayType
實例的一個值,則返回 true
。public boolean equals(Object obj)
obj
參數與此 ArrayType
實例的相等性。
當且僅當兩個 ArrayType
實例描述具有相同維度、元素的開放型別以及基本型別陣列標記的陣列實例時,它們才相等。
OpenType<T>
中的 equals
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
時計算一次,然後對於後續的調用返回相同的值。
OpenType<T>
中的 hashCode
ArrayType
實例的雜湊碼值Object.equals(java.lang.Object)
,
Hashtable
public String toString()
ArrayType
實例的字元串表示形式。
字元串表示形式由此類別(即 javax.management.openmbean.ArrayType
)的名稱,以及為此實例定義的型別名稱、維度、元素的開放型別和基本型別陣列標記組成。
由於 ArrayType
實例是不可變的,此實例的字元串表示形式在首次調用 toString
時計算一次,然後對於後續的調用返回相同的值。
OpenType<T>
中的 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 不是基本型別陣列。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。