¿Cómo agregar una referencia a un parámetro de método en javadoc?

4 minutos de lectura

avatar de usuario
destripador234

¿Hay alguna manera de agregar referencias a uno o más de los parámetros de un método desde el cuerpo de documentación del método? Algo como:

/**
 * When {@paramref a} is null, we rely on b for the discombobulation.
 *
 * @param a this is one of the parameters
 * @param b another param
 */
void foo(String a, int b)
{...}

avatar de usuario
kevin bourrillion

Por lo que puedo decir después de leer los documentos para javadoc no hay tal característica.

no usar <code>foo</code> como se recomienda en otras respuestas; puedes usar {@code foo}. Es especialmente bueno saber esto cuando se refiere a un tipo genérico como {@code Iterator<String>} seguro que se ve mejor que <code>Iterator&lt;String&gt;</code>¿no?

La forma correcta de referirse a un parámetro de método es así:

ingrese la descripción de la imagen aquí

  • No solo responde la pregunta, sino que explica visualmente cómo modificar Javadoc con un parámetro utilizando un IDE como Intellij. Esto será útil para los buscadores que buscan una respuesta.

    – Eurig Jones

    07/04/2017 a las 23:32

  • En Eclipse no funciona. Pero es una buena respuesta, no obstante

    –Henrique de Sousa

    8 de agosto de 2017 a las 9:38

  • esto debe ser eliminado. imagina que ya no existe.

    – usuario4504267

    16 de noviembre de 2017 a las 17:38

  • @ user4504267 La imagen se ve bien, al menos ahora.

    – ErikE

    30 de mayo de 2018 a las 16:28

  • Intente refactorizar el nombre del parámetro, intellij no actualizará estos bloques de código.

    – suave

    9 de noviembre de 2018 a las 9:54

avatar de usuario
Lastnico

Como se puede ver en la fuente de Java de la java.lang.String clase:

/**
 * Allocates a new <code>String</code> that contains characters from
 * a subarray of the character array argument. The <code>offset</code>
 * argument is the index of the first character of the subarray and
 * the <code>count</code> argument specifies the length of the
 * subarray. The contents of the subarray are copied; subsequent
 * modification of the character array does not affect the newly
 * created string.
 *
 * @param      value    array that is the source of characters.
 * @param      offset   the initial offset.
 * @param      count    the length.
 * @exception  IndexOutOfBoundsException  if the <code>offset</code>
 *               and <code>count</code> arguments index characters outside
 *               the bounds of the <code>value</code> array.
 */
public String(char value[], int offset, int count) {
    if (offset < 0) {
        throw new StringIndexOutOfBoundsException(offset);
    }
    if (count < 0) {
        throw new StringIndexOutOfBoundsException(count);
    }
    // Note: offset or count might be near -1>>>1.
    if (offset > value.length - count) {
        throw new StringIndexOutOfBoundsException(offset + count);
    }

    this.value = new char[count];
    this.count = count;
    System.arraycopy(value, offset, this.value, 0, count);
}

Las referencias de parámetros están rodeadas por <code></code> etiquetas, lo que significa que la sintaxis de Javadoc no proporciona ninguna forma de hacer tal cosa. (Creo que String.class es un buen ejemplo del uso de javadoc).

  • La etiqueta no hace referencia a un parámetro específico. Está formateando la palabra “Cadena” en texto de “aspecto de código”.

    – Naxos84

    9 de marzo de 2017 a las 6:01

  • @ Naxos84 eso es cierto para la primera etiqueta , pero más adelante en el javadoc hacen referencia offset y count parámetros rodeados de etiquetas

    – Caleb Hulbert

    4 ene a las 17:53

Supongo que podría escribir su propio doclet o taglet para respaldar este comportamiento.

Descripción general de los taglets

Descripción general del doclet

avatar de usuario
Micrófono

Así es como está escrito en las fuentes de Eclipse Temurin JDK 8:

ingrese la descripción de la imagen aquí

Parece que la única manera es o {@code}, pero no es un enlace, es solo un formato.

  • Así que… aparte de debajo Params: sección, ¿dónde está x ubicado en la descripción javadoc de println ?

    – Afriza N. Arief

    9 de julio a las 16:52

  • ¡Esta es una respuesta incorrecta! {@link #method(parameters)} funciona solo para un enlace a otros métodos de la misma clase, no a los parámetros del mismo método, que era la pregunta.

    – Honza Zidek

    13 de julio a las 9:27

  • Así que… aparte de debajo Params: sección, ¿dónde está x ubicado en la descripción javadoc de println ?

    – Afriza N. Arief

    9 de julio a las 16:52

  • ¡Esta es una respuesta incorrecta! {@link #method(parameters)} funciona solo para un enlace a otros métodos de la misma clase, no a los parámetros del mismo método, que era la pregunta.

    – Honza Zidek

    13 de julio a las 9:27

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad