Java反射之数组的反射应用
上一篇我们说了Java反射之成员方法的反射
这一篇我们说一说数组的反射应用,数组的有长度等属性,所以也会有相应的方法获得这些属性,这里我们不一一列举哪些方法。我们来了解反射包中的一个类----Array类,它比util包中的Arrays少了一个s。
[一] Array类中的一些方法
static Object get(Object array, int index):返回绑定的数组对象相应下标的值。
和这一方法相似的,用于返回特定的类型值的方法:
其中static int getLength(Object array) :返回数组的长度。
**static Object newInstance(Class<?> componentType, int... dimensions) ** :创建一个特定类型、特定维度的数组。
除了get方法,还有一堆相应的set方法这里就省略介绍了。
[二] 案例演示:打印所有对象,如果是数组,则拆开打印
public static void main(String[] args) throws Exception {
Object[] obj1 = new String[]{"abc","ab","cc"};
Object obj2 = new String("我不是数组");
printObject(obj2);
printObject(obj1);
}
private static void printObject(Object obj) {
Class cls = obj.getClass();
if(cls.isArray()){
//如果是数组
for(int i = 0;i < Array.getLength(obj);i++){
System.out.println(Array.get(obj, i));
}
}else {
//如果不是数组
System.out.println(obj);
}
}
结果:
我不是数组
abc
ab
cc
下一篇介绍Java反射之对JavaBean的内省操作