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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 柏涛 中级黑马   /  2014-1-19 15:57  /  1064 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

List<?> list = new ArrayList<>(); list.add(1);
这句话为什么错了呢

3 个回复

倒序浏览
本帖最后由 淡夜清风 于 2014-1-19 16:32 编辑

。。。。
不能实例化 ArrayList<?>类型

实例化的时候,泛型的类型要指定好具体的类型,不能再用占位符"?" 因为?不代表任何类型。
=左右两边<>里的类型要一致,而且里面类型必须是类类型或者接口类型。
List<Integer> list = new ArrayList<Integer>();这样就可以了。

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
可以换成List<T> list = new ArrayList<T>(); list.add(1);
因为等号左右两边的泛型要一致,而?是任意类型,不行。
回复 使用道具 举报
你的?号代表什么类型的数据,java编译器根本就不识别这个符号,所以报错!<>里可以不写,也可以写类名或接口名
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马