Como adicionar referência a um parâmetro de método no javadoc?

313

Existe uma maneira de adicionar referências a um ou mais parâmetros de um método no corpo da documentação do 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)
{...}
ripper234
fonte

Respostas:

367

Até onde eu sei depois de ler os documentos do javadoc, não existe esse recurso.

Não use <code>foo</code>como recomendado em outras respostas; você pode usar {@code foo}. É especialmente bom saber quando você se refere a um tipo genérico como {@code Iterator<String>}- com certeza parece melhor do que <code>Iterator&lt;String&gt;</code>isso, não é!

Kevin Bourrillion
fonte
@codeé descrita em Javadoc - Descrições de tags . Consulte Uso de amostra no código JDK8 .
PBA
59

Como você pode ver no Java Source da classe java.lang.String:

/**
 * 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);
}

As referências de parâmetro são cercadas por <code></code>tags, o que significa que a sintaxe Javadoc não fornece nenhuma maneira de fazer isso. (Eu acho que String.class é um bom exemplo de uso de javadoc).

Lastnico
fonte
5
A tag <code> </code> não está fazendo referência a um parâmetro específico. Ele está formatando a palavra "String" em texto "com aparência de código".
Naxos84
46

A maneira correta de se referir a um parâmetro de método é assim:

insira a descrição da imagem aqui

Eurig Jones
fonte
2
Isso não adiciona nada às respostas existentes. Por favor, apague-o.
suriv
27
Não apenas responde à pergunta, mas explica visualmente como alterar o Javadoc com um parâmetro usando um IDE como o Intellij. Isso será útil para os pesquisadores que procuram uma resposta.
precisa saber é o seguinte
1
No Eclipse, isso não funciona. Mas é uma resposta agradável no entanto
Henrique de Sousa
2
isso deve ser excluído. imagine que não existe mais.
user4504267
2
@ user4504267 A imagem parece boa, pelo menos agora.
ErikE
11

Eu acho que você poderia escrever seu próprio doclet ou taglet para suportar esse comportamento.

Visão geral do taglet

Visão geral do Doclet

nervosismo
fonte
19
E fazer um pedido puxar para javadoc :)
Juh_