Javaレコード-87-java.lang.reflect.Array

1248 ワード

java.lang.reflect.Arrayクラスは、配列要素を動的に作成およびアクセスするための様々な静的方法を提供する.
import java.lang.reflect.Array;
public class ArrayTester1 {
    public static void main(String[] args) throws Exception{
        
        Class<?> classType = Class.forName("java.lang.String");
        Object array = Array.newInstance(classType, 10);
        Array.set(array, 5, "hello");
        String str = (String)Array.get(array, 5);
        System.out.println(str);  //hello
    }
}


public class ArrayTester2 {

    public static void main(String[] args) throws Exception{
        int[] dims = new int[]{5, 10, 15};
        
        Object array = Array.newInstance(Integer.TYPE, dims); //  , 5、10、15
//        System.out.println(array instanceof int[][][]);  //true
        
        Object arrayobj = Array.get(array, 3);  // , 
//        System.out.println(arrayobj instanceof int[][]);  //true
        arrayobj = Array.get(arrayobj, 5); // 
        Array.set(arrayobj, 10, 37);
        
        int[][][] arraycast = (int[][][])array;
        System.out.println(arraycast[3][5][10]);
        
//        System.out.println(Integer.TYPE);  //int
//        System.out.println(Integer.class);  //class java.lang.Integer
    }
    
}