DEV Community

Varargs e ambiguidade

  • Erros inesperados podem ocorrer na sobrecarga de métodos que utilizam argumentos de tamanho variável.

  • Esses erros geralmente envolvem ambiguidade, onde uma chamada ao método pode ser ambígua devido à sobrecarga.

  • O programa a seguir ilustra um exemplo de chamada ambígua a um método varargs sobrecarregado.

Image description

  • O programa mostra a sobrecarga correta do método vaTest(), mas não será compilado devido à chamada ambígua vaTest();.

  • A chamada vaTest(); pode ser interpretada como vaTest(int...) ou vaTest(boolean...), resultando em ambiguidade.

static void vaTest(int... v) { // ...
static void vaTest(int n, int... v) { // ...

  • A chamada vaTest(1) pode ser interpretada como vaTest(int...) ou vaTest(int, int...), tornando-a ambígua.

  • Em casos de ambiguidade, pode ser necessário usar nomes de métodos diferentes ou revisar o código para encontrar uma solução mais clara.

Top comments (0)