Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
Java обрабатывает обобщения с помощью стирания типов (type erasure).
При компиляции информация об обобщенных типах удаляется. Это означает, что в байт-коде класс ArrayList<String>
и ArrayList<Integer>
будут выглядеть одинаково - как ArrayList
. Вместо обобщенных параметров компилятор подставляет Object
или верхнюю границу ограниченного типа. В местах использования типов компилятор вставляет неявные приведения типов (casts).
Преимущества стирания типов:
Недостатки стирания типов:
ArrayList<int>
недопустимо. Приходится использовать их обертки (ArrayList<Integer>
).new T[size]
) или проверкаJava обрабатывает обобщения с помощью стирания типов (type erasure).
При компиляции информация об обобщенных типах удаляется. Это означает, что в байт-коде класс ArrayList<String>
и ArrayList<Integer>
будут выглядеть одинаково - как ArrayList
. Вместо обобщенных параметров компилятор подставляет Object
или верхнюю границу ограниченного типа. В местах использования типов компилятор вставляет неявные приведения типов (casts).
Преимущества стирания типов:
Недостатки стирания типов:
ArrayList<int>
недопустимо. Приходится использовать их обертки (ArrayList<Integer>
).new T[size]
) или проверкаЗарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.