В настоящее время я изучаю java generics, а ниже приведен список типов в Java, которые не поддаются восстановлению.
Тип не может быть повторно идентифицирован, если он является одним из следующих:
• переменная типа (такая как T)
• Параметрированный тип с фактическими параметрами (такими как List<Number>, ArrayList<String>, or Map<String, Integer>)
• Параметрированный тип с привязкой (например, List<? extends Number> or Comparable<? super String>)
Я понимаю, почему параметризованный тип с фактическим параметром и параметризованным типом с привязкой является недопустимым, потому что после стирания во время работы единственная информация о типе слева - это List, но почему переменная типа (например, T) является невосстанавливаемым типом? Я думал, что во время выполнения, после стирания типа, T станет Object (если T является параметром несвязанного типа), поэтому информация типа доступна.
Что-то не так с моим пониманием?