package Reflect.array; import java.lang.reflect.Array; import java.util.Arrays; import java.util.List; public class TestRelectArray { /** * @param args */ public static void main(String[] args) { int [] a1=new int[]{1,2,3}; int [] a2=new int[4]; int [][] a3=new int[][]{{11,22},{33,44}}; //String [] a4=new String[3]{"a","b","c"};//报错 String [] a4=new String[]{"a","b","c"}; Object aobj1=a1;//一维的int[]是Object的 //Object [] aobj2=a1; //报错 基本类型(int)不是Object Object aobj3=a4; Object [] aobj4=a4; Object aobj5=a3; Object [] aobj6=a3; System.out.println(a1);//[I@c3c749 /* //不符合jdk1.4的规则,List asList(Object[] a)。 就调用 public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); }*/ System.out.println("a4:"+a4);//[Ljava.lang.String;@150bd4d System.out.println(Arrays.asList(a1));//[[I@c3c749] //符合jdk1.4的规则,List asList(Object[] a) System.out.println(Arrays.asList(a4));//[a, b, c] System.out.println(Arrays.asList(a3));//[[I@1888759, [I@6e1408] System.out.println(a1.getClass());//class [I System.out.println(a3.getClass());//class [[I System.out.println(a4.getClass());//class [Ljava.lang.String; System.out.println(a1.getClass()==a2.getClass()); //true System.out.println(a1.getClass().getName());//[I System.out.println(a1.getClass().getSuperclass()); //class java.lang.Object System.out.println(a3.getClass().getSuperclass()); //class java.lang.Object System.out.println(a4.getClass().getSuperclass());//class java.lang.Object Object[] aObjects=new Object[]{"a",1}; System.out.println(aObjects[0].getClass().getName()); printObject(a4); } public static void printObject(Object obj){ Class class1=obj.getClass(); //如果是数组 ,用反射技术 if(class1.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); } } }