案例:编写一个方法打印不同类型的对象,如果传入的参数为数组则循环输出,如果传入的参数为一个字符串则直接输出。
public class PrintArrayReflect {
/**
* @param args
*/
public static void main(String[] args) {
String[] str = new String[]{"a","b","c"};
printObject(str);
printObject("xyz");
}
/**
* 接收不同类型的参数然进行判断然后遍历输出
* @param obj
*/
private static void printObject(Object obj) {
/*获取类的字节码*/
Class clazz = obj.getClass();
if (clazz.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);
}
}
}