我试图在下面的列表中添加一个整数对象,但在添加时遇到编译器错误,

List<? extends Number> list = new ArrayList<>();

Integer a = 2;

list.add(a); // Not allowed

推荐答案

实际上,这里需要使用下界通配符,而不是上界通配符.考虑:

List<? super Number> list = new ArrayList<>();
list.add(2);   // add an integer
list.add(2d);  // add a double

这里我们说的是列表包含NumberNumber的任何子类型.

请注意,只允许对list执行超类型Number的操作.例如,试图对列表中的任何项使用Integer方法将违反编译时类型安全性,并将在编译时生成错误.

Java相关问答推荐

Java应用程序崩溃时试图读取联系人从电话

为什么如果数组列表中有重复项,我的代码SOMETIMES不返回true?

inteliJ中是否有一个功能可以自动在块注释中的/*后面添加一个空格?''

无法处理批处理侦听器中的反序列化异常

错误:在Liferay7.4中找不到符号导入com.liferay.portal.kernel.uuid.PortalUUID;";

Java记录的不同序列化/反序列化

使用REST客户端和对象映射器从字符串反序列化Json

更新GWT 2.5.1到2.11.0和sencha GXT 3.1.1到4.1时出现错误

由于我在Main方法中关闭了 scanner ,但在该方法中创建了一个新的 scanner ,因此出现了错误

Com.example.service.QuestionService中的构造函数的参数0需要找不到的类型为';com.example.Dao.QuestionDao;的Bean

使用PDFBox从PDF中删除图像

Tinylog中的滚动文件会在每次应用启动时覆盖日志(log)文件

有效的公式或值列表必须少于或等于255个字符

扩展视图高度,并将其拖动到较低的视图上,而不是将其向下推?

Java SSLKeyManager出厂密码

在macOS上读取文件会导致FileNotFound,即使文件存在(并且具有权限)

如何以编程方式保存workBench.xmi?

一对多关系和ID生成

处理4.3问题:javax.xml.ind包不存在(&Q;).您可能在学习GitHub教程时遗漏了库.&Q

人们在 IntelliJ 上将-Dhttp.proxyHost=your.proxy.net -Dhttp.proxyPort=8080放在哪里?