クラスArrayType<T>

java.lang.Object
javax.management.openmbean.OpenType<T>
javax.management.openmbean.ArrayType<T>
型パラメータ:
T - このArrayTypeで記述される配列が持つ必要があるJavaコンポーネント・タイプ。
すべての実装されたインタフェース:
Serializable

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

導入されたバージョン:
1.5
関連項目:
  • フィールドのサマリー

    クラスで宣言されたフィールド OpenType

    ALLOWED_CLASSNAMES, ALLOWED_CLASSNAMES_LIST
    修飾子と型
    フィールド
    説明
    static final String[]
    非推奨。
    代わりにALLOWED_CLASSNAMES_LISTを使用してください。
    static final List<String>
    公開データ値に許可される完全修飾Javaクラス名のリストです。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    ArrayType(int dimension, OpenType<?> elementType)
    「オープン・タイプ」elementTypeである要素のディメンションdimensionを持つ配列である「オープン・データ」値を記述するArrayTypeインスタンスを構築します。
    ArrayType(SimpleType<?> elementType, boolean primitiveArray)
    指定されたSimpleTypeの1次元ArrayTypeインスタンスを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    指定されたobjパラメータとこのArrayTypeインスタンスが等しいかどうかを比較します。
    static <E> ArrayType<E[]>
    getArrayType(OpenType<E> elementType)
    ArrayTypeのインスタンスを、型保証された方法で作成します。
    int
    このArrayTypeインスタンスによって記述された配列のディメンションを返します。
    このArrayTypeインスタンスによって記述された配列に含まれる要素値の「オープン・タイプ」を返します。
    static <T> ArrayType<T>
    ArrayTypeのインスタンスを、型保証された方法で作成します。
    int
    このArrayTypeインスタンスのハッシュ・コード値を返します。
    boolean
    この公開型が記述する公開データ値がプリミティブ配列の場合はtrueを返し、そうでない場合はfalseを返します。
    boolean
    objが、このArrayTypeインスタンスの値であるかどうかをテストします。
    このArrayTypeインスタンスの文字列表現を返します。

    クラスで宣言されたメソッド OpenType

    getClassName, getDescription, getTypeName, isArray
    修飾子と型
    メソッド
    説明
    この公開型が記述する公開データ値の完全修飾Javaクラス名を返します。
    このOpenTypeインスタンスを記述するテキスト文字列を返します。
    このOpenTypeインスタンスの名前を返します。
    boolean
    この公開型が記述する公開データ値が配列の場合はtrueを返し、そうでない場合はfalseを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • ArrayType

      public ArrayType(int dimension, OpenType<?> elementType) throws OpenDataException
      「オープン・タイプ」elementTypeである要素のディメンションdimensionを持つ配列である「オープン・データ」値を記述するArrayTypeインスタンスを構築します。

      ArrayTypeインスタンスで起動されると、getClassNameメソッドは、配列要素(getElementOpenType().getClassName()へのコールによって返される)のクラス名ではなく、(java.lang.ClassgetNameメソッドで定義されたルールに従います)と記述する配列インスタンスのクラス名を返します。

      このArrayTypeインスタンスの型名に対応する内部フィールドも、記述する配列インスタンスのクラス名に設定されます。 つまり、getClassNameメソッドとgetTypeNameメソッドは同じ文字列値を返します。 このArrayTypeインスタンスの記述に対応する内部フィールドは、次のテンプレートに従う文字列値に設定されます。

      • 非プリミティブ配列の場合: <dimension>-dimension array of <element_class_name>
      • プリミティブ配列の場合: <dimension>-dimension array of <primitive_type_of_the_element_class_name>

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

      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 - このArrayTypeインスタンスによって記述された配列に含まれる要素値の「オープン・タイプ」SimpleType, CompositeType, TabularTypeまたはSimpleTypeCompositeTypeまたはTabularTypeelementTypeとして指定された別の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インスタンスの記述に対応する内部フィールドは、次のテンプレートに従う文字列値に設定されます。

      • 非プリミティブ配列の場合: 1-dimension array of <element_class_name>
      • プリミティブ配列の場合: 1-dimension array of <primitive_type_of_the_element_class_name>

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

      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
      

      パラメータ:
      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が配列で、次のいずれかがtrueの場合にのみ返されます:

      • このArrayTypeインスタンスがSimpleType要素の配列または対応するプリミティブ型を記述している場合、objのクラス名は、このArrayTypeインスタンス(たとえば、getClassNameメソッドによって返されるクラス名で、ディメンション情報が含まれています)に定義されているclassNameフィールドと同じです。
         
      • このArrayTypeインスタンスがTabularDataインタフェースまたはCompositeDataインタフェースを実装するクラスの配列を記述する場合、objは宣言された配列に割り当てることができます。objに含まれる各要素は、nullか、このArrayTypeインスタンスによって指定された要素の公開型に対して有効な値になります。

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

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

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

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

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

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

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

      オーバーライド:
      hashCode、クラスObject
      戻り値:
      このArrayTypeインスタンスのハッシュ・コード値
      関連項目:
    • toString

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

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

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

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

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

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

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

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

      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
      

      型パラメータ:
      E - インスタンスを記述するJava型は、
      パラメータ:
      elementType - このArrayTypeインスタンスによって記述された配列に含まれる要素値の「オープン・タイプ」SimpleType, CompositeType, TabularTypeまたはSimpleTypeCompositeTypeまたはTabularTypeelementTypeとして指定された別のArrayTypeのインスタンスである必要があります。
      戻り値:
      ArrayTypeインスタンス
      スロー:
      OpenDataException - elementType's classNameが公開データに許可されたJavaクラス名でない場合。
      導入されたバージョン:
      1.6
    • getPrimitiveArrayType

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

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

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

      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
      

      型パラメータ:
      T - インスタンスを記述するJava型は、
      パラメータ:
      arrayClass - int[].classboolean[][].classなどのプリミティブ配列クラス。返されるArrayTypegetElementOpenType()メソッドは、プリミティブ型の配列のラッパー型に対応するSimpleTypeを返す。
      戻り値:
      ArrayTypeインスタンス
      スロー:
      IllegalArgumentException -arrayClassがプリミティブ配列ではない場合。
      導入されたバージョン:
      1.6