2012-06-28 11 views
24

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?

+2

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

Respuesta

21

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.

+4

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

+0

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. –

+0

Pero, ¿y si el objeto está en minúscula? –

Cuestiones relacionadas