Java 11 Dec 2007 15:19

Varargs - Mais um recurso do Java 5

Varargs é um dos novos recursos do Java 5, que como o nome já diz, lhe permite fazer com que um método de uma classe receba parâmetros variáveis. Por exemplo, você quer que o seu método receba 1 int, ou um array. Nas versões anteriores ao Java 5, você teria duas maneiras de fazer:

class Varargs1 {
    public void metodoTeste(int a) {
        //a implementação tratará um único int
    }
    public void metodoTeste(int[] a) {
        //a implementação tratará o array
    }
}


ou então, teria um método apenas, que recebesse um array, e quando quisesse passar um elemento apenas, deveria fazer o seguinte:

...
int x = 4;
metodoTeste(new int[]{x});
...

Este problema foi completamente resolvido na versão 5. Para usar o varargs, você coloca o tipo acompanhado de reticiências “…” e depois o nome da variável, como mostra o exeplo:

class Varargs1 {
    public void metodoTeste(int... a) {
        /*
        a implementação tratará da variável a como
        um array, tendo ou não valores...
        */
    }
}

Dessa maneira, o método pode ser chamado assim:

metodoTeste();
metodoTeste(5);
metodoTeste(1, 23, 56, 10);
metodoTeste(new int[]{5, 6, 7, 8});

Para manipular os dados que o método recebeu, sempre será um vetor, e é fácil de identificar através da propriedade length:

class Varargs1 {
    public void metodoTeste(int... a) {
        if(a.length == 0) {
            //Não recebeu nenhum valor
        } else {
            //Recebeu 1 um mais ints
        }
    }
}

ATENÇÃO: quando se combina o varargs com outros parâmetros num método, é imprescindível que a variável que use as reticiências fique como último parâmetro. Notem que isto é questão de certificação.

class Varargs1 {
    /* CORRETO */
    public void metodoTeste(String str, int x, double... d) {
        ...
    }
    /* INCORRETO */
    public void metodoTeste(String str, double... d, int x) {
        ...
    }
}

Para acessar a documentação oficial da SUN, clique AQUI.

Adicione ao del.icio.us

2 Respostas para “Varargs - Mais um recurso do Java 5”

  1. em 07 Jan 2008 as 9:19 pm 1.Wilian disse …

    Nossa!

    Muito legal isso!

    Já tinha me deparado com essa situação algumas vezes sim.

    Abraço!

  2. em 08 Jan 2008 as 2:54 am 2.Rafael Quines disse …

    É isso ae. Tomara que o post ajude àqueles que ainda passarão por esta situação..

    Abraço

Trackback This Post | Inscreva-se no RSS Feed dos comentátios

Responda