Java Core middle

Generics: type erasure и PECS?

Ответ

Дженерики стираются компилятором (type erasure) — в рантайме нет информации о типовом параметре. PECS: Producer Extends, Consumer Super. List<? extends Number> — читать, List<? super Integer> — писать.

Разбор: Java использует type erasure: один скомпилированный класс на все параметризации, без reification (в отличие от C#). PECS: extends — для чтения, super — для записи. Дистракторы либо ошибочно вводят reification, либо переворачивают чтение/запись, либо утверждают, что instanceof с параметризованным типом работает — на самом деле он запрещён именно из-за стирания.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться