Java 反射(Array相關)

>使用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
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章