Varargs: passare un numero indeterminato di argomenti a un metodo

Dalla versione 5 di java è possibile chiamare un metodo passandogli un numero indeterminato di argomenti.
Una variabile di questo tipo è detta varargs e può essere usata solo nella firma di un metodo e la sua sintassi è il tipo primitivo o il tipo oggetto seguito da 3 punti (ellipsis).
Un esempio è il seguente:

dove la variabile x è un array contenente tutti i valori passati (nell’esempio x[0] è uguale a 1).
Questa tecnica ha però delle limitazioni:

  1. la variabile varargs può essere usata una volta sola per metodo
  2. la variabile varargs deve essere all’ultimo posto nella firma del metodo

Come variabile varargs è possibile passare null o anche omettere il valore; nell’esempio appena riportato la chiamata varargs() equivale a varargs(new int[0]) dove new int[0] è un array vuoto ma non è null.

In situazioni di ambiguità per metodi sovracaricati (overloading) la chiamata al metodo con varargs è sempre perdente come si può vedere dai seguenti esempi:

  • example 1:
  • example 2 (boxing):
  • example 3 (widening):

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.