Olá pessoal,
Estou estudando para a certificação OCJP e me deparei com um cenário bem interessante.
public class AutoBoxingArg {
public static void main(String[] args) {
int b = 1;
doSomething(b);
doSomething(b,b); // não compila
}
public static void doSomething(Integer i, Integer _i) {
System.out.println("Integer|Integer " + i);
}
public static void doSomething(int i, Integer _i) {
System.out.println("int|Integer " + i);
}
public static void doSomething(Integer i) {
System.out.println("Integer " + i);
}
public static void doSomething(int i) {
System.out.println("int " + i);
}
}
Porque posso ter um método sobrecarregado com um argumento Wrapper e o outro primitivo mas não posso ter o mesmo cenário com dois argumentos, o compilar reclama dizendo que o método doSomething(Integer i, Integer _i) é ambiguo?
Grato.