Метод add (? Extends Customer) в типе List <? расширяет Customer> не применимо для аргументов (Customer) - PullRequest
0 голосов
/ 13 мая 2018

При использовании List<? extends Customer> метод add () выдает ошибку при добавлении объекта Customer, а также объекта LocalCustomer (Sub class of 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
}

}
...