Использование символов < и > в javadoc: обход форматирования

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для того чтобы правильно вставить символы < и >, используйте HTML-мнемоники &lt; и &gt; в Javadoc.

Пример использования:

Java
Скопировать код
/**
 * Может, это не приложение для знакомств, но время от времени нам все же приходится проводить сравнения:
 * {@code a &lt; b} или {@code a &gt; b}?
 * 
 * @param a первое числовое значение для сравнения
 * @param b второе числовое значение для сравнения
 * @return true, если {@code a} меньше {@code b}
 */
public boolean isLessThan(int a, int b) {
    return a < b; // Четкое и понятное сравнение
}
Кинга Идем в IT: пошаговый план для смены профессии

Что скрыто за кодом: зачем нужно экранирование

Символы < и > не рекомендуется использовать напрямую в Javadoc, поскольку они могут быть восприняты как HTML-теги. Чтобы избежать путаницы используются HTML-мнемоники &lt; и &gt;. Это позволяет безопасно добавлять угловые скобки в комментариях Javadoc.

Специфика Javadoc: {@code} или {@literal}

Используйте {@literal ...}, чтобы представить обычный текс или символы, не являющиеся частью кода. А для вывода фрагментов кода выбирайте {@code ...}. Например:

Java
Скопировать код
/**
 * Сказав "{@literal A&lt;B&gt;C}", мы просто передаем информацию.
 * Но воспользовавшись "{@code A&lt;B&gt;C}", мы столкнемся с недопониманием, так как в коде так не принято.
 */

Многострочный код в Javadoc: сочетание <pre>{@code}</pre>

Для демонстрации многострочного кода используйте комбинацию тега <pre> и {@code}. Тег <pre> сохраняет форматирование, а {@code} позволяет элегантно использовать символы < и > внутри кода:

Java
Скопировать код
/**
 * Рассмотрим диалоги на примере программы:
 * <pre>{@code
 * if (cats &lt; dogs) {
 *     // Увы, коты, но собаки управляют миром. 
 * } else if (cats &gt; dogs) {
 *     // Коты правят миром! Где такое можно наблюдать? 
 * }
 *}</pre>
 */

Когда следует использовать {@code} или {@literal}

  • Применяйте {@code ...}, если в Javadoc вставляются фрагменты XML или какого-нибудь другого кода.
  • Используйте {@literal ...}, если текст содержит символы < и >, или если они должны отображаться прямо в документации.

Возможные проблемы и решения

  • Неэкранированные символы < и >, могут вызвать ошибки компиляции и нарушить структуру Javadoc.
  • Старые версии инструмента Javadoc могут не поддерживать {@literal ...} и {@code ...}.
  • Всегда стоит обращаться к официальной документации Java для информации о современных возможностях и совместимости.

Визуализация

Представьте символы < и >, как участников маскарада, желающих сохранить инкогнито:

Markdown
Скопировать код
- `&lt;` замещает скромного `<`.
- `&gt;` заменяет загадочного `>`.

Эти коды позволяют угловым скобкам быть собой, не вызывая путаницы:

Java
Скопировать код
/**
 * Сравниваем в маскарадных костюмах:
 * – Малыш Йода слабее: Малыш Йода &lt; Йода
 * – Дарт Вейдер страшнее: Дарт Вейдер &gt; Штурмовик
 */

Таким образом, < и > могут занимать своё место в Javadoc без каких-либо изменений. 🌟

Полезные материалы

  1. Официальное руководство Oracle по написанию Javadoc.
  2. Обсуждение использования HTML-мнемоник в Javadoc для JDK 8 на StackOverflow.
  3. Генератор документации API Java.
  4. Туториал Java о спецсимволах.
  5. Форматирование кода в комментариях Javadoc – DZone.
  6. Экранирование символов в Javadoc на Википедии.