java反射四
数组反射的应用
import java.lang.reflect.Array;
public class Demo4 {
//数组的反射
public static void main(String[] args) {
//1、具有相同维数和元素类型的数组属于同一个类型
//2、代表数组的Class实例对象的getSuperClass()方法返回
//的父类为Object类对应的Class
//3、基本类型的一维数组可以被当作Object类型使用,不能当作
//Object[] 类型使用;非基本类型的一维数组,即可以当做 Object
//类型使用,又可以当做Object[]类型使用。
//4、Arrays.asList()方法处理int[]和String[]时的差异
//5、Array工具类用于完成对数组的反射操作
printArray("abc".toCharArray());
}
public static void printArray(Object obj){
Class cls = obj.getClass(); //获取该类对象
if(cls.isArray()){ //判断该类对象是否是数组
int len = Array.getLength(obj); //获取长度
for (int i = 0; i < len; i++) { //遍历
//通过Array.get方法取出数组中的值
System.out.println(Array.get(obj, i));
}
}
else{
System.out.println("该对象不是一个数组");
}
}
}