泛型 - <? extends A> 和 <T extends A> 的区别


以下全部是个人看法
我认为 通配符 和 类型参数 就好比 通配符和占位符
类型通配符 不需要指定类型就可以直接使用 ,而类型参数需要在调用泛型类和泛型方法时指定
List<?> 逻辑上是所有List<具体类型实参> 的父类 ,满足的是一个范围
List 只能指定一个类型

        ArrayList integers = new ArrayList<>();
        ArrayList<? extends Integer> list = new ArrayList();
        list.get(0);
        // 编译不通过;只能读,不能写
        list.add(12);

相关