How can you escape the @ character in javadoc?
JavaEscapingJavadocJava Problem Overview
How can I escape the @
symbol in javadoc? I am trying to use it inside a {@code}
tag, which is inside <pre>
tags.
I already tried the html escape @
sequence, but that didn't work.
Java Solutions
Solution 1 - Java
Use the {@literal}
javadoc tag:
/**
* This is an "at" symbol: {@literal @}
*/
The javadoc for this will read:
This is an "at" symbol: @
Of course, this will work for any characters, and is the "officially supported" way of displaying any "special" characters.
It is also the most straighforward - you don't need to know the hex code of the character, and you can read what you've typed!
Solution 2 - Java
Just write it as an HTML entity:
@
From the document "javadoc - The Java API Documentation Generator"
> If you want to start a line with the @ character and not have it be interpreted, use the HTML entity @.
This implies that you can use HTML entities for any character that you would need to escape, and indeed you can:
> The text must be written in HTML with HTML entities and HTML tags. You can use whichever version of HTML your browser supports. The standard doclet generates HTML 3.2-compliant code elsewhere (outside of the documentation comments) with the inclusion of cascading style sheets and frames. HTML 4.0 is preferred for generated files because of the frame sets.
>
> For example, entities for the less than symbol (<) and the greater than symbol (>) should be written as <
and >
. Similarly, the ampersand (&) should be written as &
.
Solution 3 - Java
my solution is
/**
* Mapper Test Helper.
*
* add the following annotations above the class
* <pre>{@code
* // junit5
* @literal @ExtendWith(SpringExtension.class)
* // junit4
* @literal @RunWith(SpringRunner.class)
* }</pre>
*/
Solution 4 - Java
You got the general idea, try using the octal representation: @
Solution 5 - Java
Fixed in javadoc tool from 15.0.2
This issue now appears to be fixed when using javadoc tool from 15.0.2.
That is, we no longer need to escape the @ character when using javadoc multiline {@code ... }
block.
There is a JDK bug logged https://bugs.openjdk.java.net/browse/JDK-8130754 ... which is currently not marked as fixed but it no longer reproduces with javadoc 15.0.2.