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? –
- 1. Perché le persone usano Command-line invece di IDE?
- 2. Perché le persone usano i = i + 1 invece di i ++?
- 3. Perché le persone usano ProjectData
- 4. pixel.gif, perché le persone lo usano?
- 5. Capire quante persone usano il mio software
- 6. Perché le persone usano bouncycastle invece del provider JCE integrato in Java? Qual è la differenza?
- 7. Perché gli alias di tipo in C++ usano "using" invece di "typedef" nella loro sintassi?
- 8. Perché le persone usano ATL per la programmazione COM?
- 9. Perché le persone non usano i tetraedri per le skybox?
- 10. Perché le persone non usano <CFLOGIN>?
- 11. In che modo le persone usano Yeoman?
- 12. perché alcune librerie javascript usano $ per uno o l'altro uso
- 13. Perché i programmatori C++ usano! = Invece di <
- 14. Perché alcuni siti usano jquery con $ j invece di solo $?
- 15. C++ perché le persone non usano maiuscole nel nome dei file di intestazione?
- 16. Perché il metodo getResourceAsStream è in classe Class?
- 17. perché fopen() o open() usano errno invece di restituire il codice di errore?
- 18. Perché alcune persone escono -1 piuttosto che l'uscita 1 in caso di errore?
- 19. Perché alcuni metodi di Scala usano argomenti polimorfici invece di usare Qualsiasi/Niente?
- 20. Perché alcune righe nella cronologia di Bash diventano "*"?
- 21. Java: la ricorsione nel main-class chiama sottoclasse metodo invece del proprio metodo
- 22. Perché il metodo Static nasconde il mio metodo di istanza?
- 23. Class vs Module nella progettazione dell'API Ruby?
- 24. perché usa il movl invece di premere?
- 25. Metodo call class all'interno di Linq Query
- 26. Perché le persone utilizzano il parametro proprietario predefinito su Nessuno in __get__?
- 27. Quale hosting normalmente usano le persone per pubblicare il sito Web Django?
- 28. Nessun metodo di corrispondenza factory trovati: metodo factory 'aspectOf()'
- 29. Utilizzo del metodo self-class
- 30. Perché sympy sovrascrive `__new__` invece di` __init__`?
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