Al escribir sobre métodos en Java (es decir, en foros, listas de correo, seguimiento de incidencias, etc.), muchas personas separan el nombre del método del nombre de clase con el símbolo '#' en lugar del operador nativo de Java .
; por ejemplo, la gente se refiere a Object#toString
en lugar de Object.toString
. ¿De dónde viene esta sintaxis?¿Por qué algunas personas usan el método de clase # en lugar de Class.method en la correspondencia?
¿Por qué algunas personas usan el método de clase # en lugar de Class.method en la correspondencia?
Respuesta
Es la notación utilizada en los comentarios de javadoc cuando se vincula al método de otra clase.
EDITAR
Para recopilar la información adicional proporcionada en los comentarios:
- @Hugo observa que la notación
#
a su vez proviene de HTML ancla - @maksimov señala que
Object.method
es la sintaxis de Java llamar a métodos estáticos, lo que podría ser engañoso
ACTUALIZAR
Java 8 trae una nueva sintaxis para las referencias de métodos, que ahora parece ser más popular, por lo que Object#toString
ahora se escribe Object::toString
.
Esto, a su vez, proviene de anclas HTML, que se representan con esta notación, ya que cada método es un ancla si se genera el javadoc HTML. – WhyNotHugo
todo tiene sentido. Puedo comenzar a usarlo ahora, pero tengo que admitir que es bastante feo y me resulta más difícil de leer. Pero proporciona desambiguación en el caso de invocaciones de métodos estáticos. –
Pero, ¿y si el objeto está en minúscula? –
- 1. ¿Por qué las personas usan valores de magia en lugar de nulo en su código?
- 2. ¿Por qué las personas usan Command-line en lugar de IDE?
- 3. ¿Por qué algunas personas usan "Ninguno" como miembro de la enumeración?
- 4. ¿Por qué algunas personas usan 'if has ("gui_running")' en un .gvimrc?
- 5. pixel.gif, ¿por qué las personas lo usan?
- 6. ¿Por qué las personas usan linq en sql?
- 7. ¿Por qué las personas usan Puppet/Chef con Amazon Cloud Formation en lugar de usar CloudInit?
- 8. ¿Por qué las personas usan ATL para la programación COM?
- 9. ¿Por qué las personas usan jQuery para operaciones básicas?
- 10. ¿Por qué las personas usan bouncycastle en lugar del proveedor JCE integrado de Java? ¿Cuál es la diferencia?
- 11. ¿Por qué algunas instrucciones ARM no usan barril de cambio?
- 12. PHP: ¿Por qué algunas personas nombran funciones con '_' al principio?
- 13. ¿Qué módulo de camino o clase usan los usuarios de Python en lugar de os.path?
- 14. ¿Por qué las personas usan la expresión regular para el correo electrónico y otras validaciones complejas?
- 15. ¿Por qué las personas siempre usan la reasignación de variables de instancia en Objective-C (es decir, iPhone)?
- 16. ¿Por qué la clase Java Pattern usa un método de fábrica en lugar de un constructor?
- 17. ¿Por qué usar var en lugar del nombre de clase?
- 18. ¿Por qué usar boost :: ice_or en lugar de || y boost :: ice_and en lugar de && en enable_if?
- 19. ¿Por qué fopen() o open() usan errno en lugar de solo devolver el código de error?
- 20. ¿Por qué las personas usan __ (doble guión bajo) tanto en C++
- 21. C# y genéricos: ¿por qué se llama el método en la clase base en lugar del nuevo método en la clase derivada?
- 22. ¿Qué significa "método de clase" en ruby?
- 23. ¿Por qué no más personas usan emacs con el modo víbora?
- 24. ¿Por qué las personas usan enumeraciones en C++ como constantes mientras pueden usar const?
- 25. ¿Por qué se llama al método de clase base si la clase derivada anula el método?
- 26. ¿Por qué utilizar singleton en lugar de clase estática?
- 27. ¿Por qué las personas definen objeto extiende su clase compañera?
- 28. ¿Por qué FloatBuffer en lugar de flotar []?
- 29. JavaScript: Class.method vs. Class.prototype.method
- 30. HTML5: ¿Por qué las personas no usan "ContentEditable" para sus sitios web Comentario de entrada?
La notación de puntos se puede ver como código, donde en Object.toString 'Object' será una instancia o de lo contrario' toString' será un método estático. La notación de tablero es Javadoc y, por lo tanto, es clara. – maksimov