痛!太痛了!!!耶稣尔德,你为何!? 2022-04-11 22:49 采纳率: 0%
浏览 15

List的使用了带通配符的泛型参数导致的无法向再这个容器中添加任何对象

问题遇到的现象和发生背景

当我用一个类型参数带有通配符的List引用接受一个arrylist时候,出现了以下问题,
虽然这行代码通过编译,但是无法对这个list添加任何对象,包括obj,他自己,以及他的子类。

问题相关代码,请勿粘贴截图

import java.util.ArrayList;
import java.util.List;

public class tes {
    public static void main(String[] args) {
//      这里我使用第一种写法,下边这行代码可以通过编译器检查,但是add方法传入任何对象都会报错,包括obj对象
        List<? extends A> list = new ArrayList<>();
//      下边这种写法和上边有相同的问题其中Ason是A的子类,但是add方法依然不接受Ason,A,或者OBject的实例作为参数
//      List<? extends A> list = new ArrayList<Ason>();
//      下边这种写法会直接报错,甚至通不过编译,更不用谈调用list的add()方法了
//      List<? extends A> list = new ArrayList<? extends A>();

        list.add(new Object());
    }

}
class A{}
class Ason extends A{}
  • 写回答

1条回答 默认 最新

  • 关注

    这个博客有你想要的答案
    https://www.cnblogs.com/storml/p/7997845.html

    评论

报告相同问题?

问题事件

  • 创建了问题 4月11日

悬赏问题

  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题
  • ¥15 使用dify通过OpenAI 的API keys添加OpenAI模型时报了“Connection Error”错误