了解java泛型方法

时间:2016-05-12 17:53:34

标签: java generics

输出始终为In OBJECT。因为在所有情况下返回类型都是无效的 但为什么不去m1(整数)?如果没有类型转换,是否可以将调用转到m1(整数)?

package test;

public class test_class {

public static void m1(Integer s){
    System.out.println("IN INT");
}

public static void m1(Object s){
    System.out.println("IN OBJECT");        
}

public static <Integer> void m2(Integer t){
    m1(t);
}

public static void main(String[] args) {
    // TODO Auto-generated method stub

    test_class.m2(12);
}

}

1 个答案:

答案 0 :(得分:1)

我似乎并不了解泛型如何工作,你以某种方式将它与重载相混淆。如果声明泛型方法,则type参数(在您的情况下为Integer)是一个变量(通常为T)。在您的情况下,type参数称为Integer,它以某种方式干扰/隐藏参数的类型。

只需从<Integer>移除m2即可获得预期结果。