int[] arr=new int[4];
int[][] arr2=new int[4][];
String[] arr3=new String[4];
Object obj1=arr;
Object obj5=arr2;
Object obj6=arr3;
Object[] obj2=arr;//这个就不能通过编译
Object[] obj3=arr2;
Object[] obj4=arr3;
arr是一维数组int类型,arr2是二维数组int类型。arr3是一维数组String类型,String类型不属于基本数据类型,基本数据类型只有int,long,short,byte,char,double,float,boolean,这些是不能被Objcet类型的变量引用的。只要是数组,无论几维,都可以转换成Object类。
Object obj1=arr;这句话的意思是将obj1变量指向一维int数组arr,数组转换成Object类型,Object obj6=arr3;arr3是String类型的数组,所以可以转换成Object类型,Object[] obj2=arr;如果将一维int类型数组转变成Object类型数组,即要将数组中的每一个int类型的元素转换成Object类型,这是不行的,所以编译不通过。Object[] obj3=arr2;arr2是一个二维数组,相当于是一个一维数组,不过数组中的每一个元素也是个一维数组,将每一个一维数组转换成Object类型,这是没问题的。Object[] obj4=arr3;相当于要将一个String类型转换成Object类型,String不是基本数据类型,可以转换。
|