[RESOLVIDO] Dúvida com Wrapper e var-args

No resumo do capitulo 3 do livro da Kathy Sierra entre as tantas tem essas 2 afirmações:

  • Usados individualmente, boxing e var-args são compatíveis com sobrecarga.
  • Você pode combinar var-args com widening OU boxing.

Alguém consegue me explicar mais isso?
Eu fiz um teste aqui mas não sei se é exatamente isso que ele está falando. Vou postar aqui o que eu fiz também pra saber se era isso mesmo…

public class Boxers {

    public void varargs(Integer... x) {
    System.out.println("Integer... x");
    }
    public void varargs(int... x) {
    System.out.println("int... x");
    }

    public static void main(String [] args) {
        int x = 10;
        new Boxers().varargs(x);
    }
}

Nessa classe ta dando erro dizendo que a referencia para var-args é ambigua, ambos os métodos são compatíveis!
É isso?

Vlws!

Bom, pelo erro que dá antes de compilar, já dá pra ter uma noção, vc tem 2 métodos com a mesma assinatura…Integer e int nesse caso ele entende como um tipo só…acho que o que o livro quer dizer é que você consegue fazer varargs com tipoe Wrapper e não somente com primitivos… se tiver errado alguém me corrija…

isso é o que fala “- Você pode combinar var-args com widening OU boxing”

ou seja…

public void varargs(int... x) { System.out.println("int... x"); }

aceita tanto

varargs(10,new Integer(30));

pq é possivle combinar, var-args com o boxing automatica…

e aceitando isso…

public void varargs(Integer ... x) { System.out.println("Integer...x"); }

torna o método ambiguo, não sendo possivel definir, se mandar o varargs(10,new Integer(30)); para o método com o primitivo ou com o wrapper

Valeu Lavieri!
Tava com dúvida se era somente isso mesmo!

Minha prova ta chegando! AAAAAAAAAAH =P

Vlws!