Подстановочные знаки нижней границы Java
Я изо всех сил пытался обдумать это и задавался вопросом, может ли кто-нибудь объяснить причины этого.
У меня есть три класса:
class Angel {}
class Person extends Angel {}
class Employee extends Person {}
Когда я пытаюсь выполнить этот код
public static void insertElements(List list){
list.add(new Person());
list.add(new Employee());
list.add(new Angel());
}
Я получаю ошибку:
The method add(capture#5-of ? super Person) in the type List is not applicable for the arguments (Angel)
Я всегда читал документацию, чтобы иметь в виду имел в виду любой тип X или суперкласс X (так что в моем случае Angel является суперклассом Person) и должен быть разрешен? Очевидно нет!
У кого-нибудь есть простые примеры?