首页 > 解决方案 > 在 Java 中实现泛型

问题描述

    List<? extends Person> list1 = null;
    List<? super Person> list2 = null;

    List<Student> list3 = new ArrayList<>();
    List<Person> list4 = new ArrayList<>();
    List<Object> list5 = new ArrayList<>();

    list3.add(new Student());

    list1 = list3;
    Person p1 = list1.get(0);
  //Student s1 = list1.get(0);

Student 是 Person 的子类;(Student 扩展了 Person)

我的问题是为什么 list1.get(0) 不能被 Student 类的对象直接引用(如最后一条评论语句),因为 list3 的元素只能是 Student 类的对象或其子类的对象。在左侧使用像“Student s1”这样的变量可以在右侧引用其子类的对象。

标签: javagenericspolymorphism

解决方案


推荐阅读