Olá pessoal estou com uma dúvida em uma questão de certificação que vi em um simulado aqui.
A questão é a seguinte:
class test {
public static void main(String[] args) {
test inst_test = new test();
inst_test.method ( 1 , 1 , 1);
inst_test.method( new Integer(1) , new Integer(2) , new Integer(3) );
inst_test.method ( 1 , new Integer(5) );
inst_test.method ( new Integer(10) , 1 );
}
public void method( Integer… I ){
System.out.println(“Eye in the sky”);
}
public void method( int… i ){
System.out.println(“Fly in the pie”);
}
}
===== Isso apresenta da um erro de compilador por ambiguidade dos parâmetros do método. Até ai tudo bem !!!
Mas se trocarmos o parêmetro do segundo método assim:
public void method( int[] i ){
System.out.println(“Fly in the pie”);
}
===== Ele não apresenta ambiguididade e a saída será:
Eye in the sky
Eye in the sky
Eye in the sky
Eye in the sky
=================================================
A pergunta é a seguinte: Qual a diferença, para o compilador, quando eu declado o array com [] e quando eu declado com (…)?
Porque a ambiguidade não continua?
Procurei na internet e em meus materiais de estudo e não encontrei nada a respeito! Alguém pode me dar uma luz!
Agradeço.