記事のディレクトリ
1.何が配列であります
アレイは、完全修飾クラス名がjava.lang.reflect.Arrayで、速記クラスです。
使用2.Arrayは何ですか
Array配列のすべてを表すことができ、あなたが動的に作成し、パスの配列内の要素を変更することができます。
例を使用3.Array
(1)を作成
次のように静的メソッドのnewInstance()Constructorオブジェクトのオブジェクトを使用します。
public static Object newInstance(Class<?> element, int ... length);
最初のパラメータが要素のクラスの代表であり、残りのパラメータは一次元アレイパラメータを示し、次元数を示し、前記長さ寸法パラメータ値の2つのパラメータは、二次元配列(配列の配列)の数を表します。
Object intArray = Array.newInstance(int.class,3); //int [3]
Object stringArray = Array.newInstance(String.class,2,3); //String [2][3]
(2)割り当て
静的メソッドを使用して、割り当ては、オブジェクトObject配列、インデックスに対応する値によって返されるすべてのパラメータを設定します。
public static void set(Object array,int index,Object value);
public static void setBoolean(Object array,int index,boolean b);
public static void setXxxx(Object array,int index,xxx);
最後を表す実質的ブールの第二のタイプの一例として、種別に対応します。
Array.set(intArray,2,3);
Array.set(stringArray,1,new String[]{"123","456"});
(3)の値を求めます
静的メソッドGETパラメータの配列を返しますObjectオブジェクトとインデックスを使用してください。
public static Object get(Object array,int index);
public static boolean getBoolean(Object array,int index);
public static xxx getXxx(Object array,int index);
最後に、実質的にブールの第二のタイプの一例として、表現型に対応
System.out.println(Array.get(intArray,2));
System.out.println(Array.get(Array.get(stringArray,1),1));
(4)キャスト
アレイは、対応する配列にキャストオブジェクトオブジェクトによって戻ることができます。
var castIntArray = (int [])intArray;
var castStringArray = (String [][])stringArray;
そのような配列は、一般的な用途として使用することができます。
4.完全なコード
import java.lang.reflect.*;
public class test
{
public static void main(String[] args) {
var intArray = Array.newInstance(int.class, 3);
var stringArray = Array.newInstance(String.class, 2,3);
Array.set(intArray, 2, 3);
Array.set(stringArray, 1, new String[] { "123", "456" });
System.out.println(Array.get(intArray, 2));
System.out.println(Array.get(Array.get(stringArray,1),1));
System.out.println("-------cast-------");
System.out.println(((int[]) intArray)[2]);
System.out.println(((String [][])stringArray)[1][1]);
}
}