В вычислениях овеществление стало означать явное представление типа, то есть информации типа времени выполнения.
Подтверждаемый тип - это тип, информация о типе которого полностью доступна во время выполнения. Сюда входят примитивы, не общие типы, типы сырья, и вызовы несвязанных подстановочных знаков.
Невосстанавливаемые типы - это типы, в которых информация удалена компиляция по типу стирания - вызовы общих типов, которые не определены как неограниченные подстановочные знаки.
Тип можно отменить, если он является одним из следующих:
- Примитивный тип (например,
int)//понял- Непараметрированный класс или тип интерфейса (например,
Number,StringилиRunnable)//почему- Параметрированный тип, в котором все аргументы типа являются неограниченными подстановочными знаками (такими как
List<?>,ArrayList<?>илиMap<?, ?>)//почему- Необработанный тип (например,
List,ArrayListилиMap)//почему- Массив, тип компонента которого можно повторно идентифицировать (например,
int[],Number[],List<?>[],List[]илиint[][])//почему
Тип не может быть повторно идентифицирован, если он является одним из следующих:
- Переменная типа (например,
T)//почему- Параметрированный тип с фактическими параметрами (например,
List<Number>,ArrayList<String>илиMap<String, Integer>)//почему- Параметрированный тип с привязкой (например,
List<? extends Number>илиComparable<? super String>)//почему
Почему 2,3,4,5 можно повторно использовать и 6,7,8 в качестве невосстанавливаемых?