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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何俊森 中级黑马   /  2013-5-12 15:05  /  1989 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何俊森 于 2013-5-12 20:17 编辑

        int[] a1 = new int[3];
        int[] a2 = new int[4];
        int[][] a3 = new int[2][3];
        String[] a4 = new String[3];
        Object aObj1 = 1;
        Object aObj2 = a4;
        Object[] aObj3 = a1;//这条语句有错?如何解释(Object aObj1 = 1;)这条没有错?
        Object[] aObj4 = a3;
        Object[] aObj5 = a4;

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 很好的问题

查看全部评分

18 个回复

倒序浏览
本帖最后由 任江峰 于 2013-5-12 15:26 编辑

Object[] aObj3 = a1;这条有错,把一个int[]数组类型的引用赋值给Object[]数组类型的引用aObj3。类型不匹配:一个是int[]类型的引用,一个是Object类型的引用。
Object aObj1 = 1;这条没有错,这里是使用了int数据类型的自动装箱。把一个int类型的数值1,自动装箱成Object类型的对象aObj1。
从这个例子看出:基本数据类型可以自动装箱成Object,而基本数据类型数组int[]的引用,无法自动装箱成Object[]类型数组的引用。

评分

参与人数 2技术分 +1 黑马币 +10 收起 理由
何俊森 + 10 赞一个!
曹睿翔 + 1 赞一个!

查看全部评分

回复 使用道具 举报
一样想知道 该怎么解释呢??????

评分

参与人数 1黑马币 +3 收起 理由
何俊森 + 3

查看全部评分

回复 使用道具 举报
楼上回答完了,我copy下,给你说全了

        int[] a1 = new int[3];
         int[] a2 = new int[4];
         int[][] a3 = new int[2][3];
         String[] a4 = new String[3];
         Object aObj1 = 1; //基本数据类型自动装箱成对象,这就是一个体现
         Object aObj2 = a4;  //String类型,自己本事就相当于是对象的存在,也可以认为String类型就是对象,反正我是这么认为的,到现在为止没遇到过跟这个有冲突的事情发生
         Object[] aObj3 = a1; //数组,属于引用数据类型, 你将个int[]类型的引用赋给一个Object[]数组,那怎么可能成功呢?  他存的可是对象,不是对象的引用哦亲~!
                                          // 这不就相当于你拿着一个鸡蛋非要找鹅说,给你的蛋,帮我孵出来一 样一样的么...  笑一笑
        Object[] aObj4 = a3;   //这个可以成功,是因为二维数组,是以对象的形式存在于内存中的,我没记错的话,老毕视频有提到过这句话...我要是记错了,那你就当我扯淡吧,
                                          //看来我也该回头看看基础视频了....  
         Object[] aObj5 = a4;

评分

参与人数 1黑马币 +10 收起 理由
何俊森 + 10 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 chouwayメ 于 2013-5-12 19:56 编辑

试验了下Object aObj1 = 1;一样也不行额;
提示:    类型不匹配:不能从 int 转换为 Object[]
然后我全试验了,都不行。。。
类型不匹配。

Object a=new String ("a") 这个倒可以。  {:soso_e128:}原因这不多态么。。。  




------------------------------事后发现了 是打错了。。。sorry
回复 使用道具 举报
chouwayメ 发表于 2013-5-12 15:43
试验了下Object aObj1 = 1;一样也不行额;
提示:    类型不匹配:不能从 int 转换为 Object[]
然后我全试 ...

不是啊,我实验了下,没问题...C:\Users\shaodong\Desktop

未命名.jpg (39.77 KB, 下载次数: 0)

未命名.jpg

评分

参与人数 1黑马币 +3 收起 理由
何俊森 + 3

查看全部评分

回复 使用道具 举报
、__WSD吴少东 发表于 2013-5-12 15:48
不是啊,我实验了下,没问题...

我是在eclipis上弄的 ,刚写完边上就红x了。

评分

参与人数 1黑马币 +3 收起 理由
何俊森 + 3

查看全部评分

回复 使用道具 举报
chouwayメ 发表于 2013-5-12 15:51
我是在eclipis上弄的 ,刚写完边上就红x了。

那就不知道了,现在还是感觉eclipis 太乱了。。

点评

他的eclipse打错,你也跟着  发表于 2013-5-12 19:36
回复 使用道具 举报
仲伟 中级黑马 2013-5-12 17:09:28
9#
类型不匹配:不能转换成int[]Object[]
在jdk1.5,只有有一个叫做可变参数问题,
你去张孝祥老师的视频提到啊,
int[] 看做一个object,而不能是object[]
String[] 的话就可以认为是 object[]
多看看张孝祥老师高级java视频
Object aObj3 = a1;

评分

参与人数 1黑马币 +10 收起 理由
何俊森 + 10 正好是在看视频看到那里,才有疑问,视频里.

查看全部评分

回复 使用道具 举报
仲伟 发表于 2013-5-12 17:09
类型不匹配:不能转换成int[]Object[]
在jdk1.5,只有有一个叫做可变参数问题,
你去张孝祥老师的视频提到啊 ...

视频里这样的说的,int无法转化 为Object
回复 使用道具 举报
何俊森 发表于 2013-5-12 20:14
视频里这样的说的,int无法转化 为Object

你在看看 int[] 看成一个object啊
所以不能看成 object[]
回复 使用道具 举报
何俊森 发表于 2013-5-12 20:14
视频里这样的说的,int无法转化 为Object

你给我金币干嘛,哎,没有技术分啊
回复 使用道具 举报
我没法给技术分,只能给金币。{:soso_e121:}
回复 使用道具 举报
仲伟 发表于 2013-5-12 20:19
你给我金币干嘛,哎,没有技术分啊

。。。:D
回复 使用道具 举报
何俊森 发表于 2013-5-12 20:27
。。。

哎,你明白了,刚刚那个问题啊
回复 使用道具 举报
何俊森 发表于 2013-5-12 20:25
我没法给技术分,只能给金币。

你都三十分了啊
回复 使用道具 举报
仲伟 发表于 2013-5-12 20:33
哎,你明白了,刚刚那个问题啊

暂时没有看到更好的解释。
回复 使用道具 举报
仲伟 发表于 2013-5-12 20:34
你都三十分了啊

技术分慢慢来,快的。
回复 使用道具 举报
何俊森 发表于 2013-5-12 22:25
技术分慢慢来,快的。

我马上就够25


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马