JavaTM 2 Platform
Standard Ed. 6

javax.management.openmbean
類別 ArrayType<T>

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 a1 = 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);
 

從以下版本開始:
1.5
另請參見:
序列化表格

欄位摘要
 
從類別 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
<E> ArrayType<E[]>
getArrayType(OpenType<E> elementType)
          以型別安全的方式創建一個 ArrayType 實例。
 int getDimension()
          返回此 ArrayType 實例描述的陣列的維度。
 OpenType<?> getElementOpenType()
          返回此 ArrayType 實例描述的陣列中包含的元素值的開放型別
static
<T> ArrayType<T>
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
 

建構子詳細資訊

ArrayType

public ArrayType(int dimension,
                 OpenType<?> elementType)
          throws OpenDataException
建構一個描述開放資料 值的 ArrayType 實例,該值是其元素的開放型別elementType、元素的維度為 dimension 的陣列。

ArrayType 實例上調用時,getClassName 方法會返回它所描述的陣列實例的類別名(按照 java.lang.ClassgetName 方法定義的規則),而不是陣列元素的類別名(由對 getElementOpenType().getClassName() 的調用返回)。

還可以將對應於此 ArrayType 實例型別名稱的內部欄位設置為它描述的陣列實例的類別名。換句話說,方法 getClassNamegetTypeName 返回相同的字元串值。將對應於此 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
 
以下程式碼片段(與上述程式碼片段等效)也能得到相同的輸出:
 ArrayType t1 = 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 實例描述的陣列中包含的元素值的開放型別;必須是 SimpleTypeCompositeTypeTabularType 的一個實例,或者另一個以 SimpleTypeCompositeTypeTabularType 作為其 elementTypeArrayType
拋出:
IllegalArgumentException - 如果 dimension 不是一個正整數。
OpenDataException - 如果 elementType 的 className 不是一個受允許的開放資料 Java 類別名稱。

ArrayType

public ArrayType(SimpleType<?> elementType,
                 boolean primitiveArray)
          throws OpenDataException
為提供的 SimpleType 建構一個一維 ArrayType 實例。

primitiveArraytrue 時此建構子支持創建基本型別陣列。

對於基本型別陣列,getElementOpenType() 方法返回對應於基本型別陣列的套件裝器型別的 SimpleType

ArrayType 實例上調用時,getClassName 方法會返回它描述的陣列實例的類別名(按照 java.lang.ClassgetName 方法定義的規則),而不是陣列元素的類別名(由對 getElementOpenType().getClassName() 的調用返回)。

還可以將對應於此 ArrayType 實例型別名稱的內部欄位設置為它描述的陣列實例的類別名。換句話說,方法 getClassNamegetTypeName 返回相同的字元串值。將對應於此 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 - 如果 primitiveArraytrue,且 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,obj 是一個陣列,並且下面任何一個條件為 true 時,此方法才返回 true

指定者:
類別 OpenType<T> 中的 isValue
參數:
obj - 要測試的物件。
返回:
如果 obj 是此 ArrayType 實例的一個值,則返回 true

equals

public boolean equals(Object obj)
比較指定的 obj 參數與此 ArrayType 實例的相等性。

當且僅當兩個 ArrayType 實例描述具有相同維度、元素的開放型別以及基本型別陣列標記的陣列實例時,它們才相等。

指定者:
類別 OpenType<T> 中的 equals
參數:
obj - 與此 ArrayType 實例比較相等性的物件;如果 objnull,或者不是類別 ArrayType 的一個實例,則此方法返回 false
返回:
如果指定的物件等於此 ArrayType 實例,則返回 true
另請參見:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回此 ArrayType 實例的雜湊碼值。

ArrayType 實例的雜湊碼是在 equals 比較中使用的資訊的所有元素的雜湊碼總和(即維度、元素的開放型別和基本型別陣列標記)。基本型別值的雜湊碼是其對應裝箱物件的雜湊碼(例如,true 的雜湊碼為 Boolean.TRUE.hashCode())。這確保 t1.equals(t2) 意味著對於任何兩個 ArrayType 實例 t1t2 而言,都存在 t1.hashCode()==t2.hashCode(),這是方法 Object.hashCode() 的通用協定所要求的。

由於 ArrayType 實例是不可變的,此實例的雜湊碼在首次調用 hashCode 時計算一次,然後對於後續的調用返回相同的值。

指定者:
類別 OpenType<T> 中的 hashCode
返回:
ArrayType 實例的雜湊碼值
另請參見:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
返回此 ArrayType 實例的字元串表示形式。

字元串表示形式由此類別(即 javax.management.openmbean.ArrayType)的名稱,以及為此實例定義的型別名稱、維度、元素的開放型別和基本型別陣列標記組成。

由於 ArrayType 實例是不可變的,此實例的字元串表示形式在首次調用 toString 時計算一次,然後對於後續的調用返回相同的值。

指定者:
類別 OpenType<T> 中的 toString
返回:
ArrayType 實例的字元串表示形式

getArrayType

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 實例描述的陣列中包含的元素值的開放型別;必須是 SimpleTypeCompositeTypeTabularType 的一個實例,或者另一個以 SimpleTypeCompositeTypeTabularType 作為其 elementTypeArrayType
拋出:
OpenDataException - 如果 elementType 的 className 不是一個受允許的開放資料 Java 類別名稱。
從以下版本開始:
1.6

getPrimitiveArrayType

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[].classboolean[][].class 等等。返回 ArrayTypegetElementOpenType() 方法將返回對應於基本型別陣列外覆器型別的 SimpleType
拋出:
IllegalArgumentException - 如果 arrayClass 不是基本型別陣列。
從以下版本開始:
1.6

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only