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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Nick_KJ 中级黑马   /  2015-4-13 16:54  /  344 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

ArrayList<? extends Object> al = new ArrayList<String>();
al.add("aa");  //错
//因为集合具体对象中既可存储String,也可以存储Object的其他子类,所以添加具体的类型对象不合适,类型检查会出现安全问题。 ?extends Object 代表Object的子类型不确定,怎么能添加具体类型的对象呢?
这是一个题的答案和解释,我没理解。有能理解的朋友吗?

2 个回复

倒序浏览
把你集合中想要添加的元素类型替换掉<? extends Object>。个人认为泛型上下限之类的是在定义这个类时用,当你具体要用这个类,比如说new这个类的对象的时候,应该明确你的元素类型。如果你自己都不能明确往这个集合中传的是什么类型的元素,那么这个设计应该是有问题的。个人的理解,也许有偏差,还望大神指正。
回复 使用道具 举报
谷歌 发表于 2015-4-13 18:58
把你集合中想要添加的元素类型替换掉

已经解决了,谢谢你的回答。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马