首页 > 代码库 > Java重载遇到泛型

Java重载遇到泛型

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

 

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

       

      

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

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

     反复求证,得出以下结论

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

Java重载遇到泛型