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

180

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

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

JayL
источник
Теперь он начал нормально отображаться после того, как я отрегулировал некоторые отступы внутри блока @ {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;.

Фрэнк V
источник
Он работает лучше, чем буквальное выражение, когда за ним не следует пробел (например, при написании аннотации)
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>
 */
Ёнджун Ким
источник
2

Вы получили общее представление, попробуйте использовать восьмеричное представление: &#064;

Ювал Адам
источник
6
Это не восьмеричное.
Джои
@имеет
кодовую точку