java-java.lang.reflect.Array

public class TestArray01 {

    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(array.toString());
        //Integer.TYPE返回的是int
        System.out.println(Integer.TYPE);
        //Integer.class返回的是Integer
        System.out.println(Integer.class);
    }
}

 

三维数组设值:

import java.lang.reflect.Array;

public class TestArray02 {

    public static void main(String[] args) {
        int[] dims = new int[]{5, 10, 15};
        //构造一个以dims数组维度的int类型的数组对象
        Object threeArray = Array.newInstance(Integer.TYPE, dims);
        System.out.println(threeArray instanceof int[][][]);
        
        //Returns the value of the indexed component in the specified array object.
        //The value is automatically wrapped in an object if it has a primitive type.
        Object twoArray = Array.get(threeArray, 3);
        
        System.out.println(twoArray instanceof int[][]);
        //Returns the Class representing the component type of an array.
        //If this class does not represent an array class this method returns null.
        //Class<?> classType = twoArray.getClass().getComponentType();
        
        Object oneArray = Array.get(twoArray, 5);
        System.out.println(oneArray instanceof int[]);
        
        Array.set(oneArray, 10, 37);
        
        int [][][] castarr = (int[][][])threeArray;
        
        System.out.println(castarr[3][5][10]);
        
    }
}

posted on 2013-04-29 21:45  zcjava  阅读(299)  评论(0编辑  收藏  举报