Java重载遇到泛型

时间:2023-03-08 21:31:15
Java重载遇到泛型

今天被问到一个有意思的问题,大家都知道重载的概念吧:一个类中定义同名的方法,参数表不同(参数类型,或者参数个数不通);

但是,如果是下面这个两个方法呢

 public static int fn(List<Integer> index) {
return 1;
}
public static String fn(List<String> str) { return "str";
}

  同名的两个方法,参数表中用到了集合,参数表里的泛型不一样,那么到底这样能不能编译通过呢?

反复求证,得出以下结论

使用Sun JDK的Javac来进行编译会通过,而其他编译器可能会拒绝编译这段代码