Pregunta ¿Cómo hacer referencia a un método en javadoc?


¿Cómo puedo usar el @link etiqueta para vincular a un método?

quiero cambiar

/**
 * Returns the Baz object owned by the Bar object owned by Foo owned by this.
 * A convenience method, equivalent to getFoo().getBar().getBaz()
 * @return baz
 */
public Baz fooBarBaz()

a

/**
 * Returns the Baz object owned by the Bar object owned by Foo owned by this.
 * A convenience method, equivalent to {@link getFoo()}.{@link getBar()}.{@link getBaz()}
 * @return baz
 */
public Baz fooBarBaz()

pero no sé cómo formatear el @link etiqueta correctamente


627
2018-05-06 19:15


origen


Respuestas:


Encontrará mucha información sobre JavaDoc en el Página de referencia de la herramienta JavaDoc, incluida la información sobre

{@link package.class # member label}

etiqueta (que está buscando):

Por ejemplo, aquí hay un comentario que hace referencia al método getComponentAt (int, int):

Use the {@link #getComponentAt(int, int) getComponentAt} method.


Otros enlaces útiles sobre JavaDoc son:


836
2018-05-06 19:25



El formato general, del @link sección de la documentación de javadoc, es:

{@link package.class#member label}

Ejemplos

Método en la misma clase:

/** See also {@link #myMethod(String)}. */
void foo() { ... }

Método en una clase diferente, ya sea en el mismo paquete o importado:

/** See also {@link MyOtherClass#myMethod(String)}. */
void foo() { ... }

Método en una paquete diferente y no importado

/** See also {@link com.mypackage.YetAnotherClass#myMethod(String)}. */
void foo() { ... }

Etiqueta vinculada al método, en texto sin formato en lugar de la fuente del código:

/** See also this {@linkplain #myMethod(String) implementation}. */
void foo() { ... }

Una cadena de llamadas a métodos, como en tu pregunta. Tenemos que especificar etiquetas para los enlaces a métodos fuera de esta clase, o obtenemos getFoo().Foo.getBar().Bar.getBaz(). Pero estas etiquetas pueden ser frágiles; vea "Etiquetas" a continuación.

/**
 * A convenience method, equivalent to 
 * {@link #getFoo()}.{@link Foo#getBar() getBar()}.{@link Bar#getBaz() getBaz()}.
 * @return baz
 */
public Baz fooBarBaz()

Etiquetas

La refacturación automatizada puede no afectar las etiquetas. Esto incluye renombrar el método, clase o paquete; y cambiando la firma del método.

Por lo tanto, proporciona una etiqueta solamente si quieres un texto diferente al predeterminado. 

Por ejemplo, puede vincular el lenguaje humano al código:

/** You can also {@linkplain #getFoo() get the current foo}. */
void setFoo( Foo foo ) { ... }

O puede vincular un ejemplo de código con un texto diferente al predeterminado, como se muestra arriba en "Una cadena de llamadas a métodos". Sin embargo, esto puede ser frágil mientras las API están evolucionando.

Escriba borrado y #miembro

Si la firma del método incluye tipos parametrizados, utilice la eliminación de esos tipos en javadoc @link. Por ejemplo:

int bar( Collection<Integer> receiver ) { ... }

/** See also {@link #bar(Collection)}. */
void foo() { ... }

584
2018-05-06 19:17



puedes usar @see Para hacer eso:

muestra:

interface View {
        /**
         * @return true: have read contact and call log permissions, else otherwise
         * @see #requestReadContactAndCallLogPermissions()
         */
        boolean haveReadContactAndCallLogPermissions();

        /**
         * if not have permissions, request to user for allow
         * @see #haveReadContactAndCallLogPermissions()
         */
        void requestReadContactAndCallLogPermissions();
    }

13
2018-01-12 02:17