Java 泛型 - 类型擦除后的方法

Java Generics - method after type erasure

以下方法在应用类型擦除后会怎样?

static<T> void InsertAt0(List<T> mylist, T element) {
    mylist.add(0, element);
}

T会被Object取代吗?或者类型擦除仅与泛型有关 类?

只需删除所有 <T>,然后将任何 T 替换为 Object:

static void InsertAt0(List mylist, Object element) {
   mylist.add(0, element);
}

请注意,上面的 mylist 已被删除为 raw type 等价物:List<T> 变为 List

如果您为 T 指定了一个通配符绑定,例如 <T extends Number>,那么您可以将 T 替换为该绑定而不是 Object:

static void InsertAt0(List mylist, Number element) {
                                   ^^^^^^