Dans les documents App Engine , à quoi servent les points de suspension ( JID...
) dans cette signature de méthode?
public MessageBuilder withRecipientJids(JID... recipientJids)
Quelle est la fonction de ces trois points?
Dans les documents App Engine , à quoi servent les points de suspension ( JID...
) dans cette signature de méthode?
public MessageBuilder withRecipientJids(JID... recipientJids)
Quelle est la fonction de ces trois points?
…
, Unicode U + 2026. NetBeans 8 en Java 8 signale un "caractère illégal". Donc , Java varargs exigent le triple point final (période),...
.Réponses:
Ce sont des varargs Java. Ils vous permettent de passer n'importe quel nombre d'objets d'un type spécifique (dans ce cas, ils sont de type JID).
Dans votre exemple, les appels de fonction suivants seraient valides:
Voir plus ici: http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
la source
La façon d'utiliser les points de suspension ou les varargs à l'intérieur de la méthode est comme s'il s'agissait d'un tableau:
Cette méthode peut être appelée comme suit:
A l'intérieur
PrintWithEllipsis
, le type desetOfStrings
est un tableau de String. Vous pouvez donc économiser du travail au compilateur et passer un tableau:Pour les méthodes varargs , un paramètre de séquence est traité comme étant un tableau du même type. Donc, si deux signatures diffèrent uniquement en ce que l'une déclare une séquence et l'autre un tableau, comme dans cet exemple:
puis une erreur de compilation se produit.
Source: spécification du langage de programmation Java , où le terme technique est
variable arity parameter
plutôt que le terme communvarargs
.la source
La notation à trois points (...) est en fait empruntée aux mathématiques et signifie "... et ainsi de suite".
Quant à son utilisation en Java, elle signifie
varargs
, ce qui signifie que n'importe quel nombre d'arguments peut être ajouté à l'appel de méthode. Les seules limitations sont que levarargs
doit être à la fin de la signature de la méthode et il ne peut y en avoir qu'une par méthode.la source
Ce sont
varargs
elles qui sont utilisées pour créer une méthode qui reçoit un nombre quelconque d'arguments.Par exemple, la méthode PrintStream.printf l' utilise, car vous ne savez pas combien d'arguments vous utiliserez.
Ils ne peuvent être utilisés que comme position finale des arguments.
varargs
a été ajouté sur Java 1.5la source
Cela signifie que la méthode accepte un nombre variable d'arguments ("varargs") de type
JID
. Dans la méthode,recipientJids
est présenté.C'est pratique dans les cas où vous avez une méthode qui peut éventuellement gérer plus d'un argument de manière naturelle, et vous permet d'écrire des appels qui peuvent passer un, deux ou trois paramètres à la même méthode, sans avoir la laideur de créer un tableau à la volée.
Il permet également des idiomes tels que ceux
sprintf
de C; voirString.format()
, par exemple.la source