public class ArrayType<T> extends OpenType<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);
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 インスタンスの文字列表現を返します。 |
getClassName, getDescription, getTypeName, isArray
public ArrayType(int dimension, OpenType<?> elementType) throws OpenDataException
ArrayType インスタンス上で getClassName
メソッドを呼び出すと、getElementOpenType().getClassName() の呼び出しによって返される配列要素のクラス名ではなく、java.lang.Class
の getName
メソッドに従って、記述する配列インスタンスのクラス名が返されます。
この 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's className が公開データに許可された Java クラス名でない場合。public ArrayType(SimpleType<?> elementType, boolean primitiveArray) throws OpenDataException
SimpleType
の 1 次元 ArrayType
インスタンスを構築します。
このコンストラクタは、primitiveArray
が true
である場合に、プリミティブ型の配列の作成をサポートします。
プリミティブ配列では、getElementOpenType()
メソッドは、プリミティブ型の配列のラッパー型に対応する SimpleType
を返します。
ArrayType インスタンス上で getClassName
メソッドを呼び出すと、getElementOpenType().getClassName() の呼び出しによって返される配列要素のクラス名ではなく、java.lang.Class
の getName
メソッドに従って、記述する配列インスタンスのクラス名が返されます。
この 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 でない場合に限り true
を返します。obj は、次のいずれかが true の場合に配列になります。
ArrayType
インスタンスが SimpleType 要素または対応するプリミティブ型の配列を記述する場合、obj のクラス名はこの ArrayType
インスタンスに定義された className フィールドと同じ (getClassName
メソッドによって返される、次元情報を含むクラス名) になります。ArrayType
インスタンスが TabularData
インタフェースまたは CompositeData
インタフェースを実装するクラスの配列を記述する場合、obj は宣言された配列に割り当てることができます。obj に含まれる各要素は、null か、この ArrayType
インスタンスによって指定された要素の公開型に対して有効な値になります。public boolean equals(Object obj)
obj
パラメータとこの ArrayType
インスタンスが等しいかどうかを比較します。
2 つの ArrayType
インスタンスは、同じ次元、要素の公開型、およびプリミティブ配列フラグを持つ配列インスタンスを記述する場合に限り等しいと言えます。
equals
、クラス: OpenType<T>
obj
- この ArrayType
インスタンスと等しいかどうかを比較するオブジェクト。obj が null
の場合、または ArrayType
クラスのインスタンスではない場合、このメソッドは false
を返す。ArrayType
インスタンスと等しい場合は true
。Object.hashCode()
、HashMap
public int hashCode()
ArrayType
インスタンスのハッシュコード値を返します。
ArrayType
インスタンスのハッシュコードは、equals
比較で使用されるすべての情報要素 (次元、要素の公開型、およびプリミティブ配列フラグ) のハッシュコードの合計になります。プリミティブ値のハッシュコードは、対応する boxed 型のオブジェクトのハッシュコードです (true のハッシュコードは Boolean.TRUE.hashCode() など)。これにより、Object.hashCode()
メソッドの一般規約によって要求される、任意の 2 つの ArrayType
インスタンス t1
と t2
で、 t1.equals(t2)
であれば t1.hashCode()==t2.hashCode()
となることが保証されます。
ArrayType
インスタンスは不変で、このインスタンスのハッシュコードは、hashCode
の最初の呼び出し時に 1 回だけ計算されます。その後の呼び出しには、同じ値が返されます。
hashCode
、クラス: OpenType<T>
ArrayType
インスタンスのハッシュコード値Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public String toString()
ArrayType
インスタンスの文字列表現を返します。
この文字列表現は、このクラスの名前 (javax.management.openmbean.ArrayType
)、型名、次元、このインスタンスに定義された要素の公開型およびプリミティブ配列フラグで構成されます。
ArrayType
インスタンスは不変で、このインスタンスの文字列表現は、toString
の最初の呼び出し時に 1 回だけ計算されます。その後の呼び出しには、同じ値が返されます。
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 インスタンスによって記述される配列に含まれる要素値の公開型。SimpleType、CompositeType、TabularType のいずれかのインスタンス、または SimpleType、CompositeType、TabularType のいずれかを elementType として持つ別の ArrayType のインスタンス。OpenDataException
- elementType's className が公開データに許可された Java クラス名でない場合。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[].class
、boolean[][].class
などのプリミティブ配列クラス。返される ArrayType
の getElementOpenType()
メソッドは、プリミティブ型の配列のラッパー型に対応する SimpleType
を返す。IllegalArgumentException
-arrayClass がプリミティブ配列ではない場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.