Учебники

Java Generics — стирание типов

Обобщения используются для более строгих проверок типов во время компиляции и для обеспечения общего программирования. Чтобы реализовать общее поведение, Java-компилятор применяет стирание типа. Стирание типа — это процесс, в котором компилятор заменяет универсальный параметр фактическим методом класса или моста. При стирании типа компилятор гарантирует, что никакие дополнительные классы не создаются и нет никаких накладных расходов времени выполнения.

Замените параметры типа в универсальном типе их границей, если используются параметры ограниченного типа.

Замените параметры типа в универсальном типе на Object, если используются параметры неограниченного типа.

Вставьте слепки типа, чтобы сохранить безопасность типа.

Генерация мостовых методов для сохранения полиморфизма в расширенных универсальных типах.