输出始终为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);
}
}
答案 0 :(得分:1)
我似乎并不了解泛型如何工作,你以某种方式将它与重载相混淆。如果声明泛型方法,则type参数(在您的情况下为Integer
)是一个变量(通常为T
)。在您的情况下,type参数称为Integer,它以某种方式干扰/隐藏参数的类型。
只需从<Integer>
移除m2
即可获得预期结果。