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

2024-11-08 12:05:27
推荐回答(1个)
回答(1):

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

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

ArrayList arr = new ArrayList();

或者:

List arr = new ArrayList();  // 多态,推荐使用

再或者:

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

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

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