モジュール java.management

クラスArrayType<T>

  • すべての実装されたインタフェース:
    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
    関連項目:
    直列化された形式
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      ArrayType​(int dimension, OpenType<?> elementType)
      dimension次元の要素(公開型elementTypeの要素)の配列である公開データを記述するArrayTypeインスタンスを構築します。
      ArrayType​(SimpleType<?> elementType, boolean primitiveArray)
      指定されたSimpleTypeの1次元ArrayTypeインスタンスを構築します。
    • コンストラクタの詳細

      • ArrayType

        public ArrayType​(int dimension,
                         OpenType<?> elementType)
                  throws OpenDataException
        dimension次元の要素(公開型elementTypeの要素)の配列である公開データを記述する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インスタンスによって記述される配列に含まれる要素値の公開型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インスタンスの記述に対応する内部フィールドは、次のテンプレートに従う文字列値に設定されます。

        • プリミティブ配列でない場合: 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インスタンスに定義されたclassNameフィールドと同じ(getClassNameメソッドによって返される、次元情報を含むクラス名)になります。
           
        • この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
        関連項目:
        Object.hashCode()HashMap
      • hashCode

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

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

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

        オーバーライド:
        hashCode 、クラス:  Object
        戻り値:
        このArrayTypeインスタンスのハッシュ・コード値
        関連項目:
        Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
      • 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インスタンスによって記述される配列に含まれる要素値の公開型SimpleTypeCompositeTypeTabularTypeのいずれかのインスタンス、またはSimpleTypeCompositeTypeTabularTypeのいずれかをelementTypeとして持つ別の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