Получи случайную криптовалюту за регистрацию!

#вопросы_с_собеседований Generics: В чем преимущество, как раб | Senior Java Developer

#вопросы_с_собеседований
Generics: В чем преимущество, как работают? Что такое type-erasure? В чем отличие от шаблонов C++?

Типы дженерики обеспечивают параметрический полиморфизм, т.е выполнение идентичного кода для различных типов. Типичный пример — коллекции, итераторы
type-erasure — это стирание информации о типе-параметре в runtime. Таким образом, в байт-коде мы увидим List, Set вместо List, Set, ну и type-cast'ы при необходимости
В отличие от дженериков в Java, в С++ шаблоны в итоге приводят к компиляции метода или типа для каждого специфицированного типа параметра (специализация шаблона). Да простят меня здесь адепты С++.