本帖最后由 Stephen_Chow 于 2013-11-2 22:52 编辑
在张孝祥的java提高视频里的一个疑问:(视频:24_张孝祥Java高新技术_数组与Object的关系及其反射类型)
- public class Test3 {
- public static void main(String[] args) {
-
- // int i =1;
- Integer i =1;
- Object o =i;
- Object oo =5;//基本数据类型不是Object?但是这么传递没报错误呀
-
- int[] a1 = new int[3];
- int[] a2 = new int[4];
- int[][] a3 = new int[2][3];
- String[] a4 = new String[3];
-
- Object aObj1 = a1;
- Object aObj2 = a4;
复制代码 Object[] aObj3 = a1;MyEclipse有红叉:Type mismatch: cannot convert from int[] to Object[];
老师的解释是:基本数据类型不是Object,所以不能。String数组和int【】【】数组中的每个元素::String和int【】都是Object,所以能进行传递。
但是我自己写的Object 00 = 5;这句话没有报错误,可以通过,也就是说int可以装箱为Object,这么一来,对于int【】的每一个元素int,那不就能传递给Object了吗,所以:Object[] aObj3 = a1;这句话就应该行的呀。
基本数据类型不是Object?(不是说java中万物皆对象吗),那为什么能怎么写:Object 00 = 5; 既然能这么写, Object[] aObj3 = a1;为什么通不过,数组与Object的关系很不好理解呀,谁有好的学习心得吗?
好苦恼,好混乱,头都大了,{:soso_e181:},师哥师姐你们在哪里?
|