>使用Array的靜態方法 動態創建一維數組
public class ArrayTester1 {
/**
* java.lang.reflect.Array類 提供了動態創建和訪問數組的 各種靜態方法
*/
//通過反射的方式創建字符串的數組,動態的爲這個數組裏的元素設置好value,最後取出value打印
public static void main(String[] args) throws Exception {
Class classType =Class.forName("java.lang.String");
// 類型 length
Object array = Array.newInstance(classType, 10);
//對array數組的第五個元素賦值
Array.set(array, 5, "helloworld");
String str = (String) Array.get(array, 5);
System.out.println(str);
}
}
>使用Array的靜態方法 動態創建多維數組
public class ArrayTester2 {
public static void main(String[] args) {
//反射三維數組
int[] dims = new int[] { 5, 10, 15 };
Object array = Array.newInstance(Integer.TYPE, dims);//array 是個三維數組
//獲取數組元素:二維數組
Object arrayObj =Array.get(array, 3);
//getComponentType()返回表示數組組件類型的 Class,如果此類不表示數組類,則此方法返回null。
//數組類型
Class<?> acls = arrayObj.getClass();
System.out.println(acls);
//數組元素類型
Class<?> componentType = arrayObj.getClass().getComponentType();
System.out.println(componentType);
//獲取數組元素:一維數組
arrayObj=Array.get(arrayObj, 5);
Array.set(arrayObj, 10, 30);
//獲取打印
int [][][] arrayCast=(int [][][])array;
System.out.println(arrayCast[3][5][10]);//30
}
}