2011-03-10 14 views
7

Al responder preguntas, me refiero a nombres de métodos y documentación en línea a menudo. Estoy confundido acerca de cómo los nombres de los métodos deben ser referenciados en el texto.¿Cuál es la forma correcta de referirse a los miembros de Java en el texto?

Por ejemplo menudo me escriba:

Se debe utilizar para String.equals() comparar dos cadenas son iguales.

Sin embargo, esto es un poco engañoso:

  1. Hace equals() parece ser un miembro estático.
  2. Hace equals() parecen no tomar ningún argumento.

En aras de compleness, me gustaría saber:

Cuál es la forma correcta para referirse tanto a los miembros estáticos y los miembros de instancia?

que he visto cosas como:

  • String.equals()
  • string # equals()
  • myString.equals()

¿Hay alguna manera para referirse a los métodos de una manera agnóstica?

Por ejemplo, en C foo(void) es explícitamente una función de cero argumentos y foo() puede redefinirse más tarde para tener un conjunto diferente de argumentos. (?)

Respuesta

4

Si quieres ser realmente exacto que podría utilizar

java.lang.String#equals(java.lang.Object) 

o de la forma más corta

String#equals(Object) 

Esto es similar a la notación utilizada en javadoc y curiosamente también se ve similar para el enlace a la documentación que termina con:

String.html#equals(java.lang.Object) 

Editar: Aquí hay un enlace a la javadoc documentation que describe cómo utilizar referencias.

+0

¿Existe también una forma agnóstica de argumento? –

+2

Si solo hay un método de ese nombre, puede omitir el tipo de parámetro. Después de todo, esta es una convención de nomenclatura, no una regla rígida. –

+0

No es una convención utilizada en los documentos API generados por JavaDoc. –

2

He encontrado que un enlace a la documentación del método equals de String elimina la ambigüedad.

+0

hmm, aunque creo que deberíamos poder referirnos con precisión a los miembros sin un enlace a la documentación –

+0

@Matthew: ¿Por qué querrías hacer eso? Estás en la Web. Un hipervínculo es la forma aceptada de referirse a otro recurso. Enlace a él una vez, y cualquier mención posterior debe ser clara. –

+1

Bueno, realmente no quiero hipervínculo a String # equals (Object) todo el tiempo. Solo quiero mencionarlo. Imagina que no es el foco de la respuesta, sino solo un método secundario. –

1

Generalmente hago referencia al nombre de la clase y el método, con la expectativa de que el lector pueda usar eso para rastrear la documentación. Quizás eso es un poco arrogante. No lo sé.

Si estoy tratando de hacer un punto sobre qué firma de un método a utilizar, generalmente proporcionaré un código de muestra. Esto es principalmente porque me resulta más fácil que escribir la descripción a mano.

2

Usar myString.equals() no tiene sentido a menos que indique claramente que myString es una instancia de String. javadoc usa String # equals(), por lo que debe ser legible y comprensible para la mayoría de los desarrolladores. Esta sería mi elección.

+0

También estoy interesado en (eliminar) la implicación por String # equals() de que es un método de argumento cero. –

+1

Podría escribir "el método' String # equals' "- omita los parens y agregue la palabra" method "- para indicar una referencia no determinista a algún método (quizás uno más) llamado' equals' en el 'String' clase. –

1

myString.equals() es perfecto. Es implica el tipo y deja en claro que estamos hablando de una instancia.

Incluso se puede añadir:

myString.equals(aString)

+0

Siento que esta es la mejor manera de dar un ejemplo a los principiantes. –

2

String.equals.

Si desea dar argumentos tipo String.equals(Object).

Agregar los paréntesis (equals()) es una cosa de C. En particular, una cosa ANSI C, en la que una función sin argumentos se escribirá como tostring(void) (en realidad soy demasiado joven (!) Para recordar K & R/PCC C). C++ arregló eso, por lo que el () es bastante antiguo.

+0

De nuevo, esto parece implicar que igual es un miembro estático, ¿no? –

+0

'.' se usa para la calificación de nombres en Java. Este es un "nombre ligeramente calificado". De hecho, aparece como un punto en los rastros de la pila. –

0

Cuando se hace referencia a un método, uso "String.equals()". Esto es para lectores humanos, y es probable que sepan de lo que están hablando desde el contexto. En caso podría llegar a ser confuso, acaba de decir "String.equals método()"

One should use String.equals() for comparing two strings for equality. 

serio, que cada vez se confunde con esta frase? Entonces no te preocupes Es solo el idioma inglés, no hay un compilador que te grite.

Cuestiones relacionadas