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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 屠赞华 中级黑马   /  2015-4-17 23:46  /  856 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args) {
List<?> es = new ArrayList<String>();//这是泛型的通配符 没有问题
//es.add(null);//这是为什么呢?  为什么添加null正确  null的时候是正确的
//es.add(123);//添加其它类型都不对呢   Integer 或者是String等其他类型就不行呢 这是为什么
}
}

6 个回复

倒序浏览
对android越来越有信心了
回复 使用道具 举报
es 被声明为List<?> 那么其元素类型就未知,只能知道是Object,Integer 或者是String是具体的类型,改为List<? extends String>就可以接受String
回复 使用道具 举报
因为你声明的时候就是String类型的,第一个null是属于string类型的,但是123是整型的,不一样就不能添加进去。个人见解~
回复 使用道具 举报
还没学到那,看看
回复 使用道具 举报
有无相生 来自手机 中级黑马 2015-4-18 14:06:39
地板
向上转型ok吧
回复 使用道具 举报
梦逆光377 发表于 2015-4-18 00:08
对android越来越有信心了

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