Я читаю главу о дженеранах от эффективной Java [Пункт 27].
В книге есть этот пункт:
допустимо, хотя и сравнительно редко, для параметра типа, который должен быть ограничен некоторым выражением, включающим сам параметр типа. Это то, что известно как рекурсивный тип связан.
И это:
// Using a recursive type bound to express mutual comparability
public static <T extends Comparable<T>> T max(List<T> list) {...}
Что такое связана с рекурсивным типом и как приведенная выше кода выполняет добиться взаимной сопоставимости?