2012-06-28 12 views
24

Quando si scrivono sui metodi in Java (ad esempio nei forum, nelle mailing list, nei tracker dei problemi, ecc.) Molte persone separano il nome del metodo dal nome della classe usando il simbolo '#' invece dell'operatore Java . nativo; ad esempio, la gente fa riferimento a Object#toString anziché a Object.toString. Da dove viene questa sintassi?Perché alcune persone usano il metodo Class # invece di Class.method nella corrispondenza?

+2

La notazione dei punti può essere vista come codice, dove in Object.toString 'Object' sarà un'istanza o altrimenti' toString' sarà un metodo statico. La notazione Dash è Javadoc e quindi è chiara. – maksimov

risposta

21

È la notazione utilizzata nei commenti javadoc quando si collega a un altro metodo di una classe.

EDIT

Per raccogliere le informazioni aggiuntive fornite nei commenti:

  • @Hugo rileva che la # notazione a sua volta deriva da ancore HTML
  • @maksimov sottolinea che Object.method è la sintassi di Java chiamare metodi statici, che potrebbero essere fuorvianti

AGGIORNAMENTO

Java 8 introduce una nuova sintassi per i riferimenti al metodo, che ora sembra diventare più popolare, pertanto Object#toString viene ora scritto Object::toString.

+4

Questo, a sua volta, deriva da Ancore HTML, che sono rappresentate usando questa notazione, dal momento che ogni metodo è un'ancora se il javadoc HTML è generato. – WhyNotHugo

+0

tutto ha senso. Potrei iniziare a usarlo ora, ma devo ammettere che è piuttosto brutto e trovo più difficile leggere. Ma fornisce una disambiguazione nel caso di invocazioni di metodi statici. –

+0

Ma cosa succede se l'oggetto è in minuscolo? –

Problemi correlati