Как вы можете избежать символа @ в Javadoc?


180

Как я могу избежать @символа в Javadoc? Я пытаюсь использовать его внутри {@code}тега, который находится внутри <pre>тегов.

Я уже пробовал html escape- &#64;последовательность, но это не сработало.


Теперь он начал нормально отображаться после того, как я отрегулировал некоторые отступы внутри блока @ {code}! Это было в «Затмении», если это имеет значение.
JayL

Я все еще не могу заставить это работать это
Нил Бенн

Ответы:


267

Используйте {@literal}тег javadoc:

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

Javadoc для этого будет читать:

This is an "at" symbol: @

Конечно, это будет работать для любых символов и является «официально поддерживаемым» способом отображения любых «специальных» символов.

Это также самое простое - вам не нужно знать шестнадцатеричный код символа, и вы можете прочитать то, что вы ввели!


1
Как вы избегаете }символа?
ADTC

1
@ADTC Вы не можете. Почему ты хочешь? }не имеет особого значения в HTML.
Богемный

Так что, думаю, вы можете разделить его только на два literalтега.
ADTC

23
Я удивлен, что это принято и так проголосовало. Предпосылка вопроса: внутри тега {@code} . {@literal} просто не работает внутри тега {@code}.
Даниэль С. Собрал,

6
Опуская {и просто используя @literal @работает внутри {@code}тега.
Брэд Турек

55

Просто напишите это как сущность HTML:

&#064;

Из документа " Javadoc - Генератор документации API Java "

Если вы хотите начать строку с символа @, а не интерпретировать ее, используйте HTML-сущность @.

Это подразумевает, что вы можете использовать HTML-сущности для любого символа, который вам нужно экранировать, и действительно вы можете:

Текст должен быть написан на HTML с HTML-сущностями и HTML-тегами. Вы можете использовать любую версию HTML, которую поддерживает ваш браузер. Стандартный доклет генерирует HTML 3.2-совместимый код в другом месте (за исключением комментариев к документации) с включением каскадных таблиц стилей и фреймов. HTML 4.0 является предпочтительным для сгенерированных файлов из-за наборов фреймов.

Например, объекты для символа меньше (<) и символа больше (>) должны быть записаны как &lt;и &gt;. Аналогично, амперсанд (&) должен быть записан как &amp;.


Он работает лучше, чем буквальное выражение, когда за ним не следует пробел (например, при написании аннотации)
Bludwarf

8

мое решение

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.