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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 魏亮 中级黑马   /  2012-9-25 21:03  /  1606 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


               

                int [] ints={1,5,4,3,2};//这样的话编译失败。。。。而把int改成 Integer 之后就编译通过了,为什么呢?毕老师不是说过
                List<Integer> al=Arrays.asList(ints);//如果是基本数据类型的话,就会把数组当做集合中一个元素存入集合吗?怎么会编译                                       
                                                                      //失败呢??
               

QQ截图20120925210258.png (2.59 KB, 下载次数: 170)

QQ截图20120925210258.png

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
如果是基本数据类型的话,就会把数组当做集合中一个元素存入集合吗?怎么会编译失败呢??

因为你的List后面加了泛型,只能存入Integer类型的元素
你自己也明白会把数组当做集合中一个元素存入集合,数组时int[]类型。和integer类型不兼容
所以报错

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 汪小照 于 2012-9-25 21:18 编辑

集合中装的是Integer类型,而Arrays.asList(ints);存放的是一个数组对象,所以会出现类型不兼容的问题。应该把<>中的Integer改为Int [] 类型。
源代码如下:
import java.util.*;
class Test
{
public static void main(String[] args)
{
  int [] ints = {1,2,3,4};
  List<int []> list = Arrays.asList(ints);
  System.out.println(list);
}
}

1jpg.jpg (4.27 KB, 下载次数: 163)

运行结果

运行结果

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
{:soso_e179:}楼上的正解!!
回复 使用道具 举报
本帖最后由 李建强 于 2012-9-25 21:32 编辑

编译器是很有用的:
看提示就知道了:
需要List<Integer>
找到List<int[]>
左边声明的泛型是Integer,右面找到List<int[]>。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

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