¿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ó.


¡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!


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;.


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

2

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


66
Esto no es octal.
Joey

@tiene el punto de código 0x40 en hexadecimal, que es 64 en decimal
Binkan Salaryman
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.