这段代码的test1方法会不会重载成功?
public class Test {
public void test1(List<String> lists){
System.out.println("list1");
}
public void test1(List<Integer> list2){
System.out.println("list2");
}
public static void main(String[] args){
System.out.println("haha");
}
}
这段代码,编译工具就会提醒错误:
大概意思test1方法和test1方法的参数类型相同。
运行起来,编译就会发生错误。
原因是,
java采用语法糖的形式实现了java的泛型,在编译时会擦除语法糖,恢复基本语法的实现。上面的test1中的参数均会被擦除成原生类型List<E>,所以参数相同,不能实现方法重载。