При использовании 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
}
}