本帖最后由 唐志兵 于 2012-6-10 20:50 编辑
给定一道题目,要求打印一个object对象(教程里面是这样的例子),我们会认为这很简单啊,直接System.out.println(obj);就行了,是吧,这太简单了吧。
但是如果出现这样的object对象呢 String[] str = new String[]{"a","b","c"};
这个str是一个数组,它也是一个object对象,你如果直接打印的话那打印出来的只能是这个总体的对象,
例如 [Ljava.lang.String;@61de33,那怎么才能够把里面的所有对象打印出来呢、
这里就需要用到数组的反射了。
import java.lang.reflect.Array;
import java.lang.reflect.Method;
import java.util.Arrays;
public class ReflectLoadMain {
public static void main(String[] args) throws Exception {
String[] a4 = new String[]{"a","b","c"};
System.out.println(Arrays.asList(a4));
printObject(a4);
printObject("xyx");
}
private static void printObject(Object obj) {
// TODO Auto-generated method stub
Class cls = obj.getClass();
if (cls.isArray()) {
int len = Array.getLength(obj);
for(int i=0;i<len;i++){
System.out.println(Array.get(obj, i));
}
}
else {
System.out.println(obj);
}
}
}
这样就能够将object中的数组内容全部打印出来
数组反射,就是这样滴。。。。。
|