Wofür steht in den App Engine-Dokumenten das Auslassungszeichen ( JID...
) in dieser Methodensignatur?
public MessageBuilder withRecipientJids(JID... recipientJids)
Was ist die Funktion dieser drei Punkte?
Wofür steht in den App Engine-Dokumenten das Auslassungszeichen ( JID...
) in dieser Methodensignatur?
public MessageBuilder withRecipientJids(JID... recipientJids)
Was ist die Funktion dieser drei Punkte?
…
Unicode U + 2026 ausprobiert . NetBeans 8 in Java 8 meldet "unzulässiges Zeichen". Java-Varargs erfordern also den dreifachen FULL STOP (Punkt)...
.Antworten:
Das sind Java-Varargs. Mit ihnen können Sie eine beliebige Anzahl von Objekten eines bestimmten Typs übergeben (in diesem Fall sind sie vom Typ JID).
In Ihrem Beispiel wären die folgenden Funktionsaufrufe gültig:
Weitere Informationen finden Sie hier: http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
quelle
Die Art und Weise , die zu verwenden Ellipsen oder varargs innerhalb der Methode ist , als ob es ein Array war:
Diese Methode kann wie folgt aufgerufen werden:
Im Inneren
PrintWithEllipsis
ist der Typ vonsetOfStrings
ein Array von String. Sie können dem Compiler also etwas Arbeit ersparen und ein Array übergeben:Bei varargs- Methoden wird ein Sequenzparameter als Array desselben Typs behandelt. Wenn sich also zwei Signaturen nur darin unterscheiden, dass eine eine Sequenz und die andere ein Array deklariert, wie in diesem Beispiel:
dann tritt ein Kompilierungsfehler auf.
Quelle: Die Java Programming Language- Spezifikation, bei der der Fachbegriff
variable arity parameter
eher der allgemeine Begriff istvarargs
.quelle
Die Drei-Punkt-Notation (...) stammt tatsächlich aus der Mathematik und bedeutet "... und so weiter".
Die Verwendung in Java steht für
varargs
, was bedeutet, dass dem Methodenaufruf eine beliebige Anzahl von Argumenten hinzugefügt werden kann. Die einzigen Einschränkungen bestehen darin, dass dasvarargs
am Ende der Methodensignatur stehen muss und es nur eine pro Methode geben kann.quelle
Diese werden
varargs
verwendet, um eine Methode zu erstellen, die eine beliebige Anzahl von Argumenten empfängt.Zum Beispiel wird es von der PrintStream.printf- Methode verwendet, da Sie nicht wissen, wie viele Argumente Sie verwenden würden.
Sie können nur als endgültige Position der Argumente verwendet werden.
varargs
wurde auf Java 1.5 hinzugefügtquelle
Dies bedeutet, dass die Methode eine variable Anzahl von Argumenten ("varargs") vom Typ akzeptiert
JID
. Innerhalb der MethoderecipientJids
wird vorgestellt.Dies ist praktisch für Fälle, in denen Sie eine Methode haben, die optional mehr als ein Argument auf natürliche Weise verarbeiten kann, und die es Ihnen ermöglicht, Aufrufe zu schreiben, die einen, zwei oder drei Parameter an dieselbe Methode übergeben können, ohne die Hässlichkeit des Erstellens zu haben ein Array im laufenden Betrieb.
Es ermöglicht auch Redewendungen wie
sprintf
von C; sieheString.format()
zum Beispiel.quelle