J'ai un List<Thing>
Et je voudrais le passer à une méthode déclarée doIt(final Thing... things)
. Y-a-t-il un moyen de faire ça?
Le code ressemble à quelque chose comme ceci:
public doIt(final Thing... things)
{
// things get done here
}
List<Thing> things = /* initialized with all my things */;
doIt(things);
Ce code ne fonctionne évidemment pas parce que doIt()
prend Thing
pas List<Thing>
.
Existe-t-il un moyen de passer une liste en tant que varargs?
C'est dans une Android App, mais je ne vois pas pourquoi la solution ne s'appliquera à rien Java
Passez simplement things.toArray(new Thing[things.size()])
.
L'argument variadique est interprété en interne comme un tableau. Vous devez donc le convertir au préalable en tableau. Toujours dans votre méthode doIt
, vous devez accéder aux éléments choses-s avec l'indexation de tableau.