import java.lang.reflect.Array; public class ReflectArray { /** * 如果我们不知道,要输出的是一个数组还是其他类型。 * 那么就要在写输出方法时加以判断输出类型 * @param args */ public static void main(String[] args) { //定义一个字符串 String str1 = "abcde"; //定义一个字符数组 String[]str2 =new String[]{"a","b","abf","aatt"}; //输出:abcde PrintObject(str1); /* * 输出: * a * b * abf * aatt */ PrintObject(str2); } private static void PrintObject(Object obj) { //获得Class对象 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); } } } |