Como você pode escapar do caractere @ no javadoc?

180

Como posso escapar do @símbolo no javadoc? Estou tentando usá-lo dentro de uma {@code}tag, que está dentro de <pre>tags.

Eu já tentei a &#64;sequência de escape html , mas isso não funcionou.

JayL
fonte
Agora ele começou a ser exibido bem depois que eu ajustei parte do recuo dentro do bloco @ {code}! Isso estava no Eclipse, se importa.
JayL
Eu ainda não posso obtê-lo trabalhar com isso
Neil Benn

Respostas:

267

Use a {@literal}tag javadoc:

/**
 * This is an "at" symbol: {@literal @}
 */

O javadoc para isso lerá:

This is an "at" symbol: @

Obviamente, isso funcionará para qualquer caractere e é a maneira "oficialmente suportada" de exibir qualquer caractere "especial".

Também é o mais direto - você não precisa saber o código hexadecimal do personagem e pode ler o que digitou!

Boêmio
fonte
1
Como você escapa do }símbolo?
ADTC
1
@ADTC Você não pode. Por que você iria querer? }não tem significado especial em html.
Bohemian
Então eu acho que você só pode dividir em duas literaltags.
ADTC
23
Estou surpreso que isso seja aceito e tão votado. Premissa da pergunta: dentro da tag {@code} . {@literal} simplesmente não funciona dentro de uma tag {@code}.
Daniel C. Sobral
6
Omitir {e usar apenas @literal @trabalhos dentro de uma {@code}tag.
Brad Turek
55

Basta escrever como uma entidade HTML:

&#064;

Do documento " javadoc - O gerador de documentação da API Java "

Se você deseja iniciar uma linha com o caractere @ e não a interpretar, use a entidade HTML @.

Isso implica que você pode usar entidades HTML para qualquer caractere que precisaria escapar e, de fato, pode:

O texto deve ser escrito em HTML com entidades e tags HTML. Você pode usar qualquer versão do HTML suportada pelo navegador. O doclet padrão gera código compatível com HTML 3.2 em outros lugares (fora dos comentários da documentação) com a inclusão de quadros e quadros de estilos em cascata. O HTML 4.0 é preferido para arquivos gerados devido aos conjuntos de quadros.

Por exemplo, entidades para o símbolo menor que (<) e o símbolo maior que (>) devem ser escritas como &lt;e &gt;. Da mesma forma, o e comercial (&) deve ser escrito como &amp;.

Frank V
fonte
Ele funciona melhor do que a expressão literal quando não seguido por um espaço (quando a escrita anotação por exemplo)
Bludwarf
8

minha solução é

/**
 * Mapper Test Helper.
 *
 * add the following annotations above the class
 * <pre>{@code
 * // junit5
 * @literal @ExtendWith(SpringExtension.class)
 * // junit4
 * @literal @RunWith(SpringRunner.class)
 * }</pre>
 */
Yeongjun Kim
fonte
2

Você entendeu a ideia geral, tente usar a representação octal: &#064;

Yuval Adam
fonte
6
Isto não é octal.
Joey
@tem a 0x40 ponto de código em hexadecimal, que é 64 em decimal
Binkan Salaryman