java泛型集合
程序员文章站
2022-03-20 17:25:14
...
java中List集合声明的时候需要传入一个类型,表示集合中的元素类型。如果集合声明为父类,则不能把子类的集合实例赋值给父类集合的引用,但是可以在父类集合中添加子类对象,如果要实现子类集合实例赋值给父类集合引用,需要在父类中使用集合的向下限定,即泛型声明<? extends Parent>,下面看看例子。
public class Demo { public static void main(String[] args) { List<Parent> parents = new ArrayList<>(); parents.add(new Parent()); // 这里是可以添加子类的实例到集合中 parents.add(new Child()); // 这个赋值是不允许的 编译的时候会报错 List<Parent> parents2 = new ArrayList<Child>(); // 这样就可以了 List<? extends Parent> list = new ArrayList<Child>(); } } class Parent { } class Child extends Parent { }
上一篇: Java方法重载和覆盖