我遇到了一个示例,其中我不确定Generics语法的行为。
public void m1(List<String> list) {
System.out.println("List size" + list.size());
}
public void m1(List<Integer> list) {
}
在这里,m1
方法是重载的,但是它在Eclipse
中给出了编译时错误,
方法m1(列表)的擦除与类型测试中的另一种方法相同
方法的泛型语法是否在编译时被删除?知道为什么会发生这种事吗?
发布于 2017-01-17 06:12:00
编译器不会从您的.java文件中删除任何内容,而是创建一个.class文件,并且它不会复制注释、导入或所有一般信息(有些仍然存在)。有关更多信息,请参考下面的线程:Are generics removed by the compiler at compile time
https://stackoverflow.com/questions/41690031
复制相似问题