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
Мне не удалось найти подходящую дискуссию по этой теме. Однако ответ на другую тему немного смутил меня: Возвращаемый тип общих методов Java
По их словам, общий <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