@WTFAYD

Правильно ли составлено предложение о метасимволах супертипов в учебнике?

Здравствуйте!

Цитата из учебника (англ. и русская версия, Thinking in Java):

The argument apples is a List of some type that is the base type of Apple; thus you know that it is safe to add an Apple or a subtype of Apple.

Аргумент apples является контейнером List для некоторого типа, являющегося базовым для Apple; из этого следует, что Apple и производные от Apple типы могут безопасно включаться в контейнер.


public class SuperTypeWildcards {
	static void writeTo(List<? super Apple> apples) {
	apples.add(new Apple());
	apples.add(new Jonathan());
	// apples.add(new Fruit()); // Error
}


Я не могу здесь найти логику. Если apples является контейнером List для некоторого типа, являющегося базовым для Apple, почему же тогда нельзя добавить Fruit в контейнер, а можно добавить, к примеру, Jonathan, который НЕ является базовым для Apple, а производным от него?
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
@MoonMaster
Программист и этим все сказано
Почитайте вот эту ссылку и эту
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@r_zaycev
Аргумент apples является контейнером List для некоторого типа, базовым которого является Apple; из этого следует, что Apple и производные от Apple типы могут безопасно включаться в контейнер.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы