public class Program {
private static <Program> void foo(Program x){
System.out.println(x+"-->1");
}
private static void foo(final int i){
System.out.println(i+"-->2");
}
public static void main(String[] args) {
Integer i = 10;
foo(i);
}
}
输出结果为:
10-->1
我找不到任何关于这个话题的相关讨论。然而,另一个主题的答案让我有点困惑:- Return Type of Java Generic Methods
根据他们的说法,通用<Program>
与返回类型无关,但在我的例子中,如果我稍微修改一下这个程序,如下所示,那么输出就不同了。
public class Program {
private static <Integer> void foo(Program x){
System.out.println(x+"-->1");
}
private static void foo(final int i){
System.out.println(i+"-->2");
}
public static void main(String[] args) {
Integer i = 10;
foo(i);
}
}
输出:
10-->2
我使用的是JDK1.7
https://stackoverflow.com/questions/43887401
复制相似问题