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?
risposta
È 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
.
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
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. –
Ma cosa succede se l'oggetto è in minuscolo? –
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