Possible en double:
What is the ellipsis for in this method signature?Quels sont ces trois points dans les types de paramètres
Par exemple: protected void onProgressUpdate(Context... values)
Possible en double:
What is the ellipsis for in this method signature?Quels sont ces trois points dans les types de paramètres
Par exemple: protected void onProgressUpdate(Context... values)
Un mot: varargs
.
Les trois périodes après le type du paramètre final indiquent que l'argument final peut être passé en tant que tableau ou en tant que séquence d'arguments. Varargs peut être utilisé seulement dans la position d'argument final.
Ils sont appelés varargs et ont été introduits dans Java 5. Pour plus d'informations, lisez http://download.oracle.com/javase/1.5.0/docs/guide/language/varargs.html. En résumé, il permet de passer un tableau à une méthode sans avoir à en créer un, comme si la méthode prenait un nombre variable d'arguments. Dans votre exemple, les quatre appels seraient valides suivants:
onProgressUpdate();
onProgressUpdate(context1);
onProgressUpdate(context1, context2, context3);
onProgressUpdate(new Context[] {context1, context2});
Son varargs
l'introduit en Java 5. Plus d'infos sur Varargs
Trois points sont appelés points de suspension. La méthode peut être appelée n'importe quel nombre de valeurs de type Contexte. Vous pouvez également appeler cette méthode sans valeur.
Cela signifie que l'argument values
est un tableau facultatif d'objets Context
. Ainsi, vous pouvez appeler la fonction « onProgressUpdate » de la manière suivante:
onProgressUpdate(); // values is an empty array.
onProgressUpdate(new Context[] { new Context() }); // values has one item.
onProgressUpdate(context1, context2); // values has two items.
Voir la fonction de la langue varargs introduite dans Java 1.5.
Cela signifie que vous pouvez mettre une plage de valeurs:
onProgessUpdate(c1,c2,c3);