Карточка Middle Дженерики и стирание спрашивают часто обновлено

Стирание типов

Вопрос

Что такое стирание типов (type erasure)?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Компилятор проверяет дженерики и затем удаляет параметры: T заменяется на границу (Object или Comparable), в местах использования вставляются приведения, при необходимости генерируются bridge-методы. В рантайме List<String и List<Integer один класс.

Ответ

Компилятор проверяет дженерики и затем удаляет параметры: T заменяется на границу (Object или Comparable), в местах использования вставляются приведения, при необходимости генерируются bridge-методы. В рантайме List<String> и List<Integer> один класс. Сделано ради совместимости со старым байткодом.

Разбор

Компилятор проверяет дженерики и затем удаляет параметры: T заменяется на границу (Object или Comparable), в местах использования вставляются приведения, при необходимости генерируются bridge-методы. В рантайме List<String> и List<Integer> один класс. Сделано ради совместимости со старым байткодом.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.