Varargs

Varargs: argumentos em quantidade variável

Alguns métodos podem precisar de um número variável de argumentos, dependendo da sua aplicação.
Um exemplo é um método que abre uma conexão com a Internet e pode receber parâmetros como nome de usuário, senh…


This content originally appeared on DEV Community and was authored by DevsJavaGirlsBR

Varargs: argumentos em quantidade variável

  • Alguns métodos podem precisar de um número variável de argumentos, dependendo da sua aplicação.

  • Um exemplo é um método que abre uma conexão com a Internet e pode receber parâmetros como nome de usuário, senha, nome de arquivo, protocolo, etc.

  • Se algumas informações não forem passadas, o método pode usar padrões para esses parâmetros.

  • Métodos com argumentos de tamanho variável permitem passar apenas os argumentos necessários.

  • Antes do JDK 5, esses métodos eram tratados com sobrecarga ou arrays, o que era uma abordagem limitada e desajeitada.

  • A partir do JDK 5, foi introduzido o recurso varargs, que facilita a criação de métodos com um número variável de argumentos.

  • Varargs é a abreviação de "variable-length arguments".

  • Métodos que utilizam varargs são chamados de métodos de aridade variável ou simplesmente métodos varargs.

  • A lista de parâmetros de um método varargs é de tamanho variável, permitindo receber um número variável de argumentos.

Aspectos básicos dos varargs

  • Uma lista de argumentos de tamanho variável é especificada por três pontos (...).

  • Para criar um método que recebe um número variável de argumentos, utilizam-se esses três pontos na declaração do método.

  • Um exemplo é o método vaTest(), que demonstra como implementar essa funcionalidade.

Image description

  • Observe que v é declarado como: int ... v

  • A sintaxe com ... informa ao compilador que vaTest() pode ser chamado com zero ou mais argumentos.

  • O parâmetro v é implicitamente declarado como um array do tipo int[].

  • Dentro do método vaTest(), v é acessado usando a sintaxe comum de arrays.

  • Um programa completo pode demonstrar o uso de vaTest().

Image description

  • Dentro de vaTest(), o parâmetro v é tratado como um array porque é, de fato, um array.

  • A sintaxe ... indica ao compilador que será usado um número variável de argumentos, que serão armazenados no array v.

  • No método main(), vaTest() é chamado com diferentes números de argumentos, incluindo nenhuma.

  • Quando não há argumentos, o array v tem tamanho zero.

  • Métodos podem ter parâmetros comuns junto com parâmetros de tamanho variável, mas o varargs deve ser o último declarado.

  • Exemplo de declaração aceitável: int doIt(int a, int b, double c, int ... vals).

  • Nesse caso, os primeiros argumentos são passados para os parâmetros comuns, e os restantes para vals.

  • O método vaTest() pode ser reescrito para receber um argumento comum além do varargs.

Image description

  • O parâmetro varargs deve ser o último da lista de parâmetros do método.

  • Não é permitido declarar um parâmetro comum após um parâmetro varargs; isso gera um erro.

  • Apenas um parâmetro varargs pode ser declarado em um método.

  • Tentar declarar mais de um parâmetro varargs no mesmo método, como em int ... vals seguido de double ... morevals, é inválido e gera erro.


This content originally appeared on DEV Community and was authored by DevsJavaGirlsBR


Print Share Comment Cite Upload Translate Updates
APA

DevsJavaGirlsBR | Sciencx (2024-09-03T00:05:03+00:00) Varargs. Retrieved from https://www.scien.cx/2024/09/03/varargs/

MLA
" » Varargs." DevsJavaGirlsBR | Sciencx - Tuesday September 3, 2024, https://www.scien.cx/2024/09/03/varargs/
HARVARD
DevsJavaGirlsBR | Sciencx Tuesday September 3, 2024 » Varargs., viewed ,<https://www.scien.cx/2024/09/03/varargs/>
VANCOUVER
DevsJavaGirlsBR | Sciencx - » Varargs. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/09/03/varargs/
CHICAGO
" » Varargs." DevsJavaGirlsBR | Sciencx - Accessed . https://www.scien.cx/2024/09/03/varargs/
IEEE
" » Varargs." DevsJavaGirlsBR | Sciencx [Online]. Available: https://www.scien.cx/2024/09/03/varargs/. [Accessed: ]
rf:citation
» Varargs | DevsJavaGirlsBR | Sciencx | https://www.scien.cx/2024/09/03/varargs/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.