方法add(?extends Customer)在类型List <! - ?中扩展客户 - >不适用于参数(客户)

时间:2018-05-13 11:41:09

标签: java generics collections

使用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
}

}

0 个答案:

没有答案