почему class A> а не - class A>?

Comparable<T> интерфейс и класс должен имплементировать интерфейс.

Например Integer implements Comparable<Integer>.

Почему же говорят, что class A<T extends Comparable<T>> ?


Ответы (1 шт):

Автор решения: Sergei Buvaka

Потому что то что здесь Integer implements Comparable<Integer> вы говорите:

"Класс Integer реализует интерфейс Comparable". Это ключевое слово используется при использовании интерфейсов.

class A<T extends Comparable<T>> 

В этом же куске кода говорится следующее: "Есть класс А в котором есть какой-то параметризированный тип. И этот тип обязан быть экземпляром Comparable", это ключевое слово из Generic Wildcards. И здесь не важно будет ли этот класс T имплементировать интерфейс или же наследоваться от какого-то класса, в отличии от extends и implements при обычном использовании.

Надеюсь, что смог хоть немного ответить на ваш вопрос. Я бы рекомендовал вам больше почитать про Generics в Java.

Здесь и здесь можно почитать подробнее.

→ Ссылка