package testPack;
public class Array {
int[] arr = {10,20,30,40,50};
}
package testPack;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.util.Arrays;
public class classTest {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Class<?> c = Class.forName("testPack.Array");
Object ob = c.getConstructor().newInstance();
Field field = c.getDeclaredField("arr");
Object obj = field.get(ob);
// 获取整个数组
System.out.println(Arrays.toString((int[]) obj));
// 获取数组单个元素
System.out.println("=================");
int a = Array.getInt(obj, 0);
System.out.println(a);
Object o = Array.get(obj, 1);
System.out.println(o);
// 获取数组长度
System.out.println("=================");
System.out.println(Array.getLength(obj));
// 数组遍历
System.out.println("=================");
for(int arr : (int[])obj){
System.out.println(arr);
}
// 创建数组
System.out.println("=================");
Object array = Array.newInstance(String.class,5);
for(String str : (String[])array){
System.out.println(str);
}
}
}
运行结果
[10, 20, 30, 40, 50]
=================
10
20
=================
5
=================
10
20
30
40
50
=================
null
null
null
null
null
本文深入探讨了Java反射API的应用,通过实例演示了如何使用反射获取并操作数组元素,包括获取数组内容、单个元素、数组长度及遍历数组。同时,展示了如何利用反射创建数组,为读者提供了全面的Java反射技术实践指导。

873

被折叠的 条评论
为什么被折叠?



