Я новичок в java и пытаюсь понять любопытный синтаксис ниже из книги Java Generics and Collections .. (Я много работал с шаблонами C++ и, следовательно, мог претендовать на понимание основ общего программирования и вероятных ошибок):В чем разница между «? Extends E» и «T extends E»?
interface Collection <E> {
...
public boolean addAll(Collection<? extends E> c);
...
}
Почему не выше можно записать в виде:
interface Collection <E> {
...
public boolean addAll(Collection<T extends E> c);
...
}
в чем разница? Это просто ограничение языка или есть какая-то разница под капотом?
Вы имеете в виду 'public boolean addAll (Collection c);' –
Я остановил это, чтобы обратить ваше внимание на мой предыдущий комментарий. –
Теперь исправлено. –