A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨波 中级黑马   /  2012-3-12 21:48  /  1773 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1.                        int[] a= {1,2};
  2.                 Object object3=a; //正常通过
  3.                 Object object2 = {1,2};//报错cannot convert from int[] to Object
复制代码
对于它报的错误感到不理解,int[] 也是对象,java对象都是Object 的子类,怎么就转化不成。

4 个回复

倒序浏览
你进误区了把, 数组确实是对象,,但是 {1,2}  这不是数组..

  Object object2 = {1,2};  这写法我还是第一次见过{:soso_e113:}
回复 使用道具 举报
我认为,上面那句编译通过是因为,将a的引用地址传给了object3。也就是说object3指向了这个地址,但是并不能使用这个地址里面的内容,因为object3是个类类型变量。
而下面那句编译报错很厚理解,因为左边的是一个数组,而右边却是定义的一个类类型的变量,所以它们的类型不匹配,编译就会报错。
回复 使用道具 举报
我同意楼上的说法,引用类型变量 其实不是等于后面的对象的 都是吧对象的地址值赋给了引用类型变量
你想想啊  一个对象或者一个数组 里面都包含多个元素或者成员  如果是等于的话那岂不是一个引用对象就可以把那些全部调用出来了?
那何必要  引用变量.方法   呢  等等    所以引用变量只是给地址的  通过地址来找对象中的东西
  而调用数组  数组中每个元素都有地址值 也是通过地址来输出数组中的元素的    所以我认为对象中的调用方式应该和数组类似
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马