Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

JavaDoc и документационные комментарии: полное руководство

Типы комментариев в Java

Java поддерживает три вида комментариев:

ТипСинтаксисОписание
Однострочный// комментарийИгнорируется компилятором до конца строки.
Многострочный/* комментарий */Игнорируется всё между /* и */. Не вкладываются.
Документационный (Doc-комментарий)/** документация */Обрабатывается утилитой javadoc для генерации HTML-документации.

Что такое Javadoc?

Javadoc — встроенный в JDK инструмент, генерирующий API-документацию в HTML из исходного кода. Он извлекает doc-комментарии (начинающиеся с /**) перед классами, интерфейсами, методами, полями и конструкторами.

Базовый пример

/**
 * Класс HelloWorld выводит приветствие.
 * <p>
 * Пример использования HTML-тегов внутри комментария.
 *
 * @author Иван Иванов
 * @version 1.0
 * @since 2024-01-15
 */
public class HelloWorld {
    /**
     * Точка входа в программу.
     * @param args аргументы командной строки (не используются)
     */
    public static void main(String[] args) {
        // Обычный комментарий — в документацию не попадает
        System.out.println("Hello, World!");
    }
}

Структура doc-комментария

Документационный комментарий состоит из:

  1. Описания — первый фрагмент до первого тега или пустой строки. Используется в сводках.
  2. Тегов — специальные инструкции, начинающиеся с @ (блочные) или {@ (встроенные).

Основные теги Javadoc

ТегНазначениеПример
@authorАвтор класса/интерфейса@author Иван Иванов
@versionВерсия@version 1.2.3
@sinceВерсия, с которой существует элемент@since 1.5
@paramОписание параметра метода/конструктора@param name имя пользователя
@returnОписание возвращаемого значения@return сумма чисел
@throws / @exceptionИсключение, которое может выбросить метод@throws IOException при ошибке ввода
@seeСсылка на связанный элемент@see String#length()
@deprecatedПомечает устаревший API@deprecated Используйте newMethod()
{@link}Встроенная ссылка (в коде)См. {@link String}
{@code}Текст моноширинным шрифтом без интерпретации HTML{@code List<String>}
{@value}Значение константы (static final){@value #MAX_SIZE}
{@inheritDoc}Наследует комментарий от родителя{@inheritDoc}

Пример полноценного документированного класса

package com.example.math;

/**
 * Утилиты для математических вычислений.
 * <p>
 * Потокобезопасен, не хранит состояние.
 *
 * @author Команда разработки
 * @version 2.1
 * @since 1.0
 */
public final class MathUtils {

    private MathUtils() {} // утилитарный класс

    /**
     * Вычисляет факториал числа.
     * <p>
     * Сложность: O(n). Для n > 20 результат переполняет {@code long}.
     *
     * @param n неотрицательное целое число
     * @return n! (факториал)
     * @throws IllegalArgumentException если n < 0
     * @see #factorialIterative(int)
     */
    public static long factorial(int n) {
        if (n < 0) throw new IllegalArgumentException("n должен быть >= 0");
        return (n <= 1) ? 1 : n * factorial(n - 1);
    }

    /**
     * Итеративный вариант факториала.
     * @param n неотрицательное число
     * @return n!
     * @throws IllegalArgumentException если n < 0
     */
    public static long factorialIterative(int n) {
        if (n < 0) throw new IllegalArgumentException("n должен быть >= 0");
        long result = 1;
        for (int i = 2; i <= n; i++) result *= i;
        return result;
    }
}

Генерация документации

Запуск из командной строки:

# Базовая генерация
javadoc -d docs -sourcepath src -subpackages com.example

# С дополнительными опциями
javadoc -d docs -sourcepath src \
    -author -version -private \
    -windowtitle "My Project API" \
    -doctitle "<h1>My Project</h1>" \
    -header "<b>My Project</b>" \
    -footer "<i>© 2024</i>" \
    com.example

Ключевые опции:

Лучшие практики

Интеграция с IDE и сборкой

java

  1. Освоение операторов Java: типы, синтаксис и практические примеры
  2. Комментарии в Java: типы, использование и лучшие практики
  3. Освоение улучшенного цикла for в Java: синтаксис, примеры и лучшие практики
  4. Освоение строк в Java: создание, методы и лучшие практики
  5. Интерфейсы в Java: концепции, реализация и лучшие практики
  6. Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
  7. Try-with-resources в Java: автоматическое управление ресурсами
  8. Аннотации в Java: типы, размещение и практические примеры
  9. Assertions в Java: практическое руководство по обнаружению багов и обеспечению надежности кода
  10. Понимание Java Vector: использование, особенности и сравнение с ArrayList