Язык Java поддерживает три типа комментариев:
Sr.No. | Комментарий и описание |
---|---|
1 |
/ * текст * / Компилятор игнорирует все от / * до * /. |
2 |
//текст Компилятор игнорирует все от // до конца строки. |
3 |
/** документация */ Это комментарий к документации и в целом его называют комментарием к документу . Инструмент JDK Javadoc использует комментарии к документам при подготовке автоматически сгенерированной документации. |
/ * текст * /
Компилятор игнорирует все от / * до * /.
//текст
Компилятор игнорирует все от // до конца строки.
/** документация */
Это комментарий к документации и в целом его называют комментарием к документу . Инструмент JDK Javadoc использует комментарии к документам при подготовке автоматически сгенерированной документации.
Эта глава посвящена объяснению Javadoc. Мы увидим, как мы можем использовать Javadoc для создания полезной документации для кода Java.
Что такое Javadoc?
Javadoc — это инструмент, который поставляется с JDK и используется для генерации документации кода Java в формате HTML из исходного кода Java, для которого требуется документация в предопределенном формате.
Ниже приведен простой пример, где строки внутри /*….*/ являются многострочными комментариями Java. Аналогично, строка, которая предшествует //, является однострочным комментарием Java.
пример
/** * The HelloWorld program implements an application that * simply displays "Hello World!" to the standard output. * * @author Zara Ali * @version 1.0 * @since 2014-03-31 */ public class HelloWorld { public static void main(String[] args) { /* Prints Hello, World! on standard output. System.out.println("Hello World!"); } }
Вы можете включить необходимые теги HTML внутри части описания. Например, в следующем примере для заголовка используется <h1> …. </ h1>, а <p> использовался для создания разрыва абзаца —
пример
/** * <h1>Hello, World!</h1> * The HelloWorld program implements an application that * simply displays "Hello World!" to the standard output. * <p> * Giving proper comments in your program makes it more * user friendly and it is assumed as a high quality code. * * * @author Zara Ali * @version 1.0 * @since 2014-03-31 */ public class HelloWorld { public static void main(String[] args) { /* Prints Hello, World! on standard output. System.out.println("Hello World!"); } }
Теги Javadoc
Инструмент Javadoc распознает следующие теги —
Тег | Описание | Синтаксис |
---|---|---|
@author | Добавляет автора класса. | @ имя автора текста |
{@код} | Отображает текст с использованием шрифта кода без интерпретации текста как разметки HTML или вложенных тегов Javadoc. | {@ code text} |
{} @DocRoot | Представляет относительный путь к корневому каталогу сгенерированного документа с любой сгенерированной страницы. | {} @DocRoot |
@deprecated | Добавляет комментарий, указывающий, что этот API больше не должен использоваться. | @deprecated deprecatedtext |
@exception | Добавляет подзаголовок Throws к сгенерированной документации с именем класса и текстом описания. | @exception class-name description |
{} @InheritDoc | Наследует комментарий от ближайшего наследуемого класса или реализуемого интерфейса. | Наследует комментарий от непосредственного суперкласса. |
{@ссылка на сайт} | Вставляет встроенную ссылку с видимой текстовой меткой, которая указывает на документацию для указанного пакета, класса или имени члена ссылочного класса. | {@link package.class # метка участника} |
{} @Linkplain | Идентичен {@link}, за исключением того, что ярлык ссылки отображается в виде обычного текста, а не шрифта кода. | {@linkplain package.class # метка участника} |
@param | Добавляет параметр с указанным именем параметра, за которым следует указанное описание, в раздел «Параметры». | @param имя параметра описание |
@вернуть | Добавляет раздел «Возвраты» с текстом описания. | @ возвращение описание |
@увидеть | Добавляет заголовок «Смотрите также» со ссылкой или текстовой записью, которая указывает на ссылку. | @ см. ссылку |
@serial | Используется в комментарии к документу для сериализуемого поля по умолчанию. | @serial field-description | включить | исключать |
@serialData | Документирует данные, записанные методами writeObject () или writeExternal (). | @serialData data-description |
@serialField | Документирует компонент ObjectStreamField. | @serialField field-name field-type field-description |
@поскольку | Добавляет заголовок «С» с указанным текстом текста в созданную документацию. | @ релиз |
@throws | Теги @throws и @exception являются синонимами. | @ бросает описание имени класса |
{@значение} | Когда {@value} используется в комментариях к документу статического поля, он отображает значение этой константы. | {@value package.class # field} |
@версия | Добавляет подзаголовок «Версия» с указанным текстом версии в сгенерированные документы, когда используется опция -version. | @ версия-текст версии |
пример
Следующая программа использует несколько важных тегов, доступных для комментариев к документации. Вы можете использовать другие теги в зависимости от ваших требований.
Документация по классу AddNum будет создана в HTML-файле AddNum.html, но в то же время будет также создан основной файл с именем index.html.
import java.io.*; /** * <h1>Add Two Numbers!</h1> * The AddNum program implements an application that * simply adds two given integer numbers and Prints * the output on the screen. * <p> * <b>Note:</b> Giving proper comments in your program makes it more * user friendly and it is assumed as a high quality code. * * @author Zara Ali * @version 1.0 * @since 2014-03-31 */ public class AddNum { /** * This method is used to add two integers. This is * a the simplest form of a class method, just to * show the usage of various javadoc Tags. * @param numA This is the first paramter to addNum method * @param numB This is the second parameter to addNum method * @return int This returns sum of numA and numB. */ public int addNum(int numA, int numB) { return numA + numB; } /** * This is the main method which makes use of addNum method. * @param args Unused. * @return Nothing. * @exception IOException On input error. * @see IOException */ public static void main(String args[]) throws IOException { AddNum obj = new AddNum(); int sum = obj.addNum(10, 20); System.out.println("Sum of 10 and 20 is :" + sum); } }
Теперь обработайте вышеуказанный файл AddNum.java с помощью утилиты javadoc следующим образом:
$ javadoc AddNum.java Loading source file AddNum.java... Constructing Javadoc information... Standard Doclet version 1.7.0_51 Building tree for all the packages and classes... Generating /AddNum.html... AddNum.java:36: warning - @return tag cannot be used in method with void return type. Generating /package-frame.html... Generating /package-summary.html... Generating /package-tree.html... Generating /constant-values.html... Building index for all the packages and classes... Generating /overview-tree.html... Generating /index-all.html... Generating /deprecated-list.html... Building index for all classes... Generating /allclasses-frame.html... Generating /allclasses-noframe.html... Generating /index.html... Generating /help-doc.html... 1 warning $
Вы можете проверить всю сгенерированную документацию здесь — AddNum . Если вы используете JDK 1.7, то javadoc не создает отличный файл stylesheet.css , поэтому мы предлагаем загрузить и использовать стандартную таблицу стилей с https://docs.oracle.com/javase/7/docs/api/stylesheet.css