Java泛型理解

Patison

您能否向我解释一下这里发生了什么以及为什么它没有错误就可以工作。

List list = new ArrayList<String>();
list.add(1);

抱歉,如果已经有类似的问题,则我未能正确提出问题,因此无法在Google上搜索

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

这里发生的事情暴露了类型擦除的弱点,类型擦除是Java泛型背后的机制。更改其通用类型参数时,ArrayList的实现不会更改:它始终是后台的java.lang.Object。

由于在声明列表时未向接口提供类型参数,因此编译器允许您添加任何类型的对象,而不仅仅是字符串。特别是,int自动装箱到java.lang.Integer中,因此可以将值1添加到列表中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章