[RESOLVIDO]Método com parâmetro var-args

3 respostas
Raulen_Rodrigues_da_

A dúvida é a seguinte:
Eu tenho um método desta forma:

static void doStuff(int a, int... b){}

E eu chamo o método desta maneira:

doStuff(23); doStuff(12,45);
A questão é a seguinte por que a 1º versão da chamada vai compilar também, se o método tem dois parametros…?
Talvez o var-args seja opcional? pois foi isso que entendi, e por isso resolvi perguntar no fórum.

3 Respostas

E
static void doStuff(int a, int... a){}

é aproximadamente equivalente a:

static void doStuff(int a, int[] a){}

mas em vez de você passar explicitamente o array, como em:

doStuff(23, new int[] {});   // array de 0 elementos
doStuff(12, new int[] {45});  // array de 1 elemento

você passa o array “implicitamente”, sem precisar de usar “new int[]” e chaves.

Marky.Vasconcelos

A vantagem é que se nao for passado nenhum parametro para o var…args ele assume um array vazio sem explicitamente passa-lo como parametro.

Raulen_Rodrigues_da_

Vlw Galera…

Criado 20 de janeiro de 2010
Ultima resposta 20 de jan. de 2010
Respostas 3
Participantes 3