JavaTM 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)
          dimension 次元の要素 (「公開型」が elementType の要素) の配列である「公開データ」を記述する ArrayType インスタンスを構築します。
ArrayType(SimpleType<?> elementType, boolean primitiveArray)
          指定された SimpleType の 1 次元 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
dimension 次元の要素 (「公開型」が elementType の要素) の配列である「公開データ」を記述する ArrayType インスタンスを構築します。

ArrayType インスタンス上で getClassName メソッドを呼び出すと、getElementOpenType().getClassName() の呼び出しによって返される配列要素のクラス名ではなく、java.lang.ClassgetName メソッドに従って、記述する配列インスタンスのクラス名が返されます。

この 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
 
また、次のコードも上記のコードと等価であり、出力は同じになります。  
 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 のいずれかを elementType として持つ別の ArrayType のインスタンス
例外:
IllegalArgumentException - dimension が正の 整数ではない場合
OpenDataException - elementType's className が 公開データに許可された Java クラス名でない 場合

ArrayType

public ArrayType(SimpleType<?> elementType,
                 boolean primitiveArray)
          throws OpenDataException
指定された SimpleType の 1 次元 ArrayType インスタンスを構築します。

このコンストラクタは、primitiveArraytrue である場合に、プリミティブ型の配列の作成をサポートします。

プリミティブ配列では、getElementOpenType() メソッドは、プリミティブ型の配列のラッパー型に対応する SimpleType を返します。

ArrayType インスタンス上で getClassName メソッドを呼び出すと、getElementOpenType().getClassName() の呼び出しによって返される配列要素のクラス名ではなく、java.lang.ClassgetName メソッドに従って、記述する配列インスタンスのクラス名が返されます。

この 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 - 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 でない場合に限り true を返します。obj は、次のいずれかの条件が満たされている場合、配列になります。

定義:
クラス OpenType<T> 内の isValue
パラメータ:
obj - 判定されるオブジェクト
戻り値:
obj がこの ArrayType インスタンスの値である場合は true

equals

public boolean equals(Object obj)
指定された obj パラメータとこの ArrayType インスタンスが等しいかどうかを比較します。

2 つの ArrayType インスタンスは、同じ次元、要素の公開型、およびプリミティブ配列フラグを持つ配列インスタンスを記述する場合に限り等しいと言えます。

定義:
クラス OpenType<T> 内の equals
パラメータ:
obj - この ArrayType インスタンスと等しいかどうかを比較するオブジェクト。objnull の場合、または ArrayType クラスのインスタンスではない場合、このメソッドは false を返す
戻り値:
指定されたオブジェクトがこの ArrayType インスタンスと同じ場合は true
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
この ArrayType インスタンスのハッシュコード値を返します。

ArrayType インスタンスのハッシュコードは、equals 比較で使用されるすべての情報要素 (次元、要素の公開型、およびプリミティブ配列フラグ) のハッシュコードの合計になります。プリミティブ値のハッシュコードは、対応する boxed 型のオブジェクトのハッシュコードです (true のハッシュコードは Boolean.TRUE.hashCode() など)。このため、t1.equals(t2) は、2 つの ArrayType インスタンス t1 および t2t1.hashCode()==t2.hashCode() が、Object.hashCode() メソッドの一般規約に従っていることを示します。

ArrayType インスタンスは不変で、このインスタンスのハッシュコードは、hashCode の最初の呼び出し時に 1 回だけ計算されます。 その後の呼び出しには、同じ値が返されます。

定義:
クラス OpenType<T> 内の hashCode
戻り値:
この ArrayType インスタンスのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
この ArrayType インスタンスの文字列表現を返します。

この文字列表現は、このクラスの名前 (javax.management.openmbean.ArrayType)、型名、次元、このインスタンスに定義された要素の公開型およびプリミティブ配列フラグで構成されます。

ArrayType インスタンスは不変で、このインスタンスの文字列表現は、toString の最初の呼び出し時に 1 回だけ計算されます。その後の呼び出しには、同じ値が返されます。

定義:
クラス OpenType<T> 内の toString
戻り値:
この ArrayType インスタンスの文字列表現

getArrayType

public static <E> ArrayType<E[]> getArrayType(OpenType<E> elementType)
                                   throws OpenDataException
ArrayType インスタンスを、型保証された方法で作成します。

多次元配列は、このメソッドを必要な回数呼び出すことで構築できます。

同じパラメータを指定してこのメソッドを 2 回呼び出した場合、同じオブジェクトが返されるか、2 つの同等の (同一ではない) オブジェクトが返される可能性があります。

例として、次のコードの抜粋を参照してください。  

 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 のいずれかを elementType として持つ別の ArrayType のインスタンス
例外:
OpenDataException - elementType's className が 公開データに許可された Java クラス名でない 場合
導入されたバージョン:
1.6

getPrimitiveArrayType

public static <T> ArrayType<T> getPrimitiveArrayType(Class<T> arrayClass)
ArrayType インスタンスを、型保証された方法で作成します。

同じパラメータを指定してこのメソッドを 2 回呼び出した場合、同じオブジェクトが返されるか、2 つの同等の (同一ではない) オブジェクトが返される可能性があります。

例として、次のコードの抜粋を参照してください。  

 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 Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。