2014-01-22 9 views
8

ich nicht den Namen des :: Operator hinzugefügt in Java 8 in eine der folgenden Ressourcen finden können:Was ist der Name des :: Operator in Java 8

+6

Vielleicht _method reference_ operator? –

+0

Was macht der :: Operator? – FelixM

+0

Ich bin mir nicht sicher, ob es sich um einen Operator handeln kann. Danach sind alle Operatoren wie Funktionen, die über Operanden wirken. Und auf welche Operanden wirkt der Operator '::'? Ich denke, es ist mehr eine Syntax-Funktion, wie die '[]' oder '<>'. –

Antwort

4

Es sollte wohl ein „Doppelpunkt Trennzeichen“ aufgerufen werden:

  • Brian Goetz * nennt es „Doppelpunkt Doppelpunkt“ und da war er der Spezifikation Führung für den Lambda-JSR ich, dass wir ihn annehmen, betrachten kann als eine maßgebliche Quelle.
  • Die specification #3.11 klassifiziert :: als Separator.

* Quelle: the road to lambda @ Javaone 2013 around 04:00.

+0

Das Video wird gerade nicht für mich geladen (wahrscheinlich nur Videos, die hier blockiert sind), aber vorausgesetzt, es sagt, dann würde ich das als eine wirkliche Antwort betrachten. :) –

+0

@ 280Z28 Das Video funktionierte nicht für mich auf Firefox - es funktioniert auf Internet Explorer - das ist schockierend! – assylias

7

Nach here, es sieht wie es eine Methode Referenz Operator aufgerufen wird. Es wird in Abschnitt 15.13 des vorgeschlagenen JLS behandelt, zu dem Sie verlinken.

Wie jedoch zu Recht darauf hingewiesen wird, scheint es, nie explizit als ein Operator benannt zu werden (im Gegensatz zu allen Dingen wie +, - und so weiter). Stattdessen bezieht sich die JLS einfach auf den gesamten Ausdruck, der :: als einen Methodenreferenzausdruck enthält.

Es kann sein, dass dies, weil :: ist nicht betrachtet überhaupt einen Operator zu sein, sondern wird explizit als Separator (siehe JLS Link 3.11, während die Betreiber in 3.12 sind) genannt werden.

Also würde ich es tendenziell in dem Kontext, der Sie interessiert, ein Methodenreferenztrennzeichen (oder allgemeiner das Doppel-Doppelpunkttrennzeichen) nennen.

+0

Der Link, den Sie angegeben haben, bezieht sich niemals auf '::' nach Namen. Außerdem bezieht sich Abschnitt 15.13 niemals auf '::' nach Namen. Dies steht in starkem Kontrast zu den Abschnitten 15.14 bis 15.26, die abschnittsweise jedem der anderen Java-Operatoren explizite Namen geben. –

0

Es wird in den Kapiteln 3.11 und 15.13.3 als Trennzeichen beschrieben.