¿Cómo puedes escapar del personaje @ en javadoc?

180

¿Cómo puedo escapar del @símbolo en javadoc? Estoy tratando de usarlo dentro de una {@code}etiqueta, que está dentro de las <pre>etiquetas.

Ya probé la &#64;secuencia de escape html , pero eso no funcionó.

JayL
fuente
¡Ahora ha comenzado a mostrarse bien después de que ajusté parte de la sangría dentro del bloque @ {code}! Esto estaba en Eclipse si importa.
JayL
Todavía no puedo hacerlo funcionar
Neil Benn

Respuestas:

267

Use la {@literal}etiqueta javadoc:

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

El javadoc para esto leerá:

This is an "at" symbol: @

Por supuesto, esto funcionará para cualquier personaje, y es la forma "oficialmente compatible" de mostrar cualquier personaje "especial".

También es lo más directo: no necesita saber el código hexadecimal del personaje, ¡ y puede leer lo que ha escrito!

Bohemio
fuente
1
¿Cómo escapas del }símbolo?
ADTC
1
@ADTC No puedes. ¿Por qué quieres hacerlo? }no tiene un significado especial en html.
Bohemio
Así que supongo que solo puedes dividirlo en dos literaletiquetas.
ADTC
23
Me sorprende que esto sea aceptado y tan votado. Premisa de la pregunta: dentro de la etiqueta {@code} . {@literal} simplemente no funciona dentro de una etiqueta {@code}.
Daniel C. Sobral
66
Omitir {y solo usar @literal @trabajos dentro de una {@code}etiqueta.
Brad Turek
55

Solo escríbelo como una entidad HTML:

&#064;

Del documento " javadoc - El generador de documentación API de Java "

Si desea comenzar una línea con el carácter @ y no hacer que se interprete, use la entidad HTML @.

Esto implica que puede usar entidades HTML para cualquier carácter del que necesite escapar, y de hecho puede:

El texto debe estar escrito en HTML con entidades HTML y etiquetas HTML. Puede usar cualquier versión de HTML que admita su navegador. El doclet estándar genera código compatible con HTML 3.2 en otro lugar (fuera de los comentarios de la documentación) con la inclusión de marcos y hojas de estilo en cascada. Se prefiere HTML 4.0 para los archivos generados debido a los conjuntos de marcos.

Por ejemplo, las entidades para el símbolo menor que (<) y mayor que el símbolo (>) deben escribirse como &lt;y &gt;. Del mismo modo, el signo (&) debe escribirse como &amp;.

Frank V
fuente
Funciona mejor que la expresión literal cuando no está seguido de un espacio (cuando se escribe una anotación, por ejemplo)
Bludwarf
8

mi solucion es

/**
 * 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
fuente
2

Tienes la idea general, intenta usar la representación octal: &#064;

Yuval Adam
fuente
66
Esto no es octal.
Joey
@tiene el punto de código 0x40 en hexadecimal, que es 64 en decimal
Binkan Salaryman