Java重载遇到泛型

Posted 马三

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java重载遇到泛型相关的知识,希望对你有一定的参考价值。

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

 

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

       

      

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

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

     反复求证,得出以下结论

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

以上是关于Java重载遇到泛型的主要内容,如果未能解决你的问题,请参考以下文章

Java-8 中的方法引用和泛型

什么意思 在HashMap之前 ? Java中的泛型[重复]

Java、静态方法绑定和泛型都包含一些方法重载

使用不在参数中的第一个泛型类型重载泛型函数

Java协变式覆盖(Override)和泛型重载(Overload)

操作 Java 泛型:泛型在继承方面体现与通配符使用