在Java中编译时是否删除了泛型语法?

时间:2017-01-17 06:03:46

标签: java eclipse generics

我遇到了一个例子,我不确定Generics语法的行为。

public void m1(List<String> list) {
    System.out.println("List size" + list.size());
}

public void m1(List<Integer> list) {
}

此处,m1方法已重载但在Eclipse中出现编译时错误,

  

方法m1(List)的擦除与Test

类型中的另一种方法相同

是否在编译时删除了方法的通用语法? 任何想法为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

编译器不会从.java文件中删除任何内容,而是创建.class文件,并且它不会复制注释,导入或所有通用信息(有些仍然存在)。有关更多信息,请参阅以下主题: Are generics removed by the compiler at compile time