java 集合中泛型通配符 用了之后就不能添加 元素了 为什么?

java 集合中泛型通配符 用了之后就不能添加 元素了 为什么?,第1张

首先泛型是用来约束的(或者说是规范化),泛型的本质是参数化类型,不是用来通配的(这个说法也不完全对),这个概念一定不要混淆了。

你添加的元素是String类型的,那么你的代码就得这样:

ArrayList<String> arr = new ArrayList<String>()

或者:

List<String> arr = new ArrayList<String>()  // 多态,推荐使用

再或者:

List arr = new ArrayList()

ArrayList arr = new ArrList() // 这两种没有用泛型,编译器会提示警告

用上面1和2方式的话,你的arr集合就只能存放String类型对象,3没有用泛型,什么类型的对象都可以存放。只是取出来的时候,会要类型转换,这个过程很容易出错。

希望我的回答能对你有所帮助,荣幸之至。

你写错了,是engineers 不是englineers

engineers.Add(wang)

engineers.Add(li)

engineers.Add(wangwu)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11956760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存