Java重载遇到泛型
今天被问到一个有意思的问题,大家都知道重载的概念吧:一个类中定义同名的方法,参数表不同(参数类型,或者参数个数不通);
但是,如果是下面这个两个方法呢
public static int fn(List<Integer> index) { return 1; } public static String fn(List<String> str) { return "str"; }
同名的两个方法,参数表中用到了集合,参数表里的泛型不一样,那么到底这样能不能编译通过呢?
反复求证,得出以下结论
使用Sun JDK的Javac来进行编译会通过,而其他编译器可能会拒绝编译这段代码