使用List<? extends Customer>
时,add()方法在添加Customer对象以及LocalCustomer(Customer类的Customer)对象时会出错。但是当我将List<? extends Customer>
的引用变量强制转换为List<Customer>
时,它可以正常工作。为什么?
public class GenericInheritance {
public static void main(String[] args) {
List<? extends Customer> custs2=new ArrayList<LocalCustomer>();
custs2.add(new Customer()); // Error
custs2.add(new LocalCustomer("ABC")); // Error
((List<Customer>)custs2).add(new LocalCustomer("PQR")); // No Error
}
}