Согласно этому руководству по дженерикам:
В процессе стирания типа компилятор Java стирает все параметры типа и заменяет каждый его первой границей, если параметр типа ограничен, или Object, если параметр типа не ограничен.
Я взял тот же класс, что и в учебнике, и скомпилировал его, а затем декомпилировал и увидел, что параметры типа не заменяются, поэтому на мгновение я подумал, что, возможно, декомпиляция повторно ввела параметры типа, поэтому я использовал javap
, и я вижу ниже o /p, так что явно параметры типа не заменяются.
C:\>javap Node
Compiled from "Node.java"
public class Node<T> {
public Node(T, Node<T>);
public T getData();
}
Я неправильно понял концепцию стирания шрифта или что-то упустил?