Я относительно новичок в концепции обобщения в Java, и я не могу сказать разницу между двумя ответами.
Вопрос под рукой:
Предположим, у нас есть универсальный класс E, и мы хотимпараметр типа E
должен быть подклассом E
.Другими словами, мы допускаем E<F>
только в том случае, если класс F
либо E
, либо наследуется от E
.
. Я сузил варианты до того, что возможно.
1. class E<T extends E>
2. class E<T extends E<T>>.
Я считаю, что вариант 1 соответствует спецификации для вопроса.Однако я не совсем понимаю вариант 2, что он на самом деле расширяет.