2012-06-28 10 views
24

Wenn man über Methoden in Java (das heißt in Foren, Mailinglisten, Issue Tracker, etc.) zu schreiben viele Menschen trennen die Methodennamen aus dem Klassennamen das Symbol ‚#‘ anstelle von Java native . Operator; Zum Beispiel beziehen sich Leute auf Object#toString anstelle von Object.toString. Woher kommt diese Syntax?Warum verwenden manche Leute die Klasse # Methode anstelle der Klasse.Methode in Korrespondenz?

+2

Dot Notation als Code zu sehen ist, wo in Object.toString 'Object' wird eine Instanz sein oder auf andere Weise' toString' wird eine statische Methode sein. Dash Notation ist Javadoc und so ist klar. – maksimov

Antwort

21

Es ist die Notation in javadoc Kommentare verwendet, wenn auf eine andere Klasse Methode zu verknüpfen.

EDIT

Um die zusätzliche Informationen zur Verfügung gestellt, um Kommentare zu sammeln:

  • @Hugo stellt fest, dass die # Notation wiederum kommt von HTML
  • Anker
  • @maksimov darauf hinweist, dass Object.method die Syntax von Java ist statische Methoden zu nennen, die

UPDATE irreführend sein könnte

Java 8 bringt eine neue Syntax für Methodenreferenzen, die jetzt bekannter zu werden scheint - so wird Object#toString dazu tendiert, jetzt geschrieben zu werden Object::toString.

+4

Dies stammt wiederum von HTML-Ankern, die in dieser Notation dargestellt werden, da jede Methode ein Anker ist, wenn das HTML-Javadoc generiert wird. – WhyNotHugo

+0

macht alles Sinn. Ich fange jetzt an, es zu benutzen, aber ich muss zugeben, es ist ziemlich hässlich und ich finde es schwerer zu lesen. Aber es bietet eine Disambiguierung bei statischen Methodenaufrufen. –

+0

Aber was, wenn das Objekt kleingeschrieben ist? –