Ограничение сверху. Использование final-классов

Ограничение сверху. Использование final-классов

Хотя final-классы запрещают создавать наследников, для wildcard, ограниченных сверху, допускается указывать final-класс в качестве супер-типа.


class X extends String {}; // ошибка компиляции

List<? extends String> list = new ArrayList<>(); // скомпилируется успешно
Дженерики