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{}

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