Java - komentarze do dokumentacji

Język Java obsługuje trzy typy komentarzy -

Sr.No. Komentarz i opis
1

/* text */

Kompilator ignoruje wszystko od / * do * /.

2

//text

Kompilator ignoruje wszystko od // do końca wiersza.

3

/** documentation */

To jest komentarz do dokumentacji i ogólnie jego nazwa doc comment. PlikJDK javadocnarzędzie wykorzystuje komentarze do dokumentów podczas przygotowywania automatycznie generowanej dokumentacji.

Ten rozdział dotyczy wyjaśnienia Javadoc. Zobaczymy, jak możemy wykorzystać Javadoc do wygenerowania użytecznej dokumentacji dla kodu Java.

Co to jest Javadoc?

Javadoc jest narzędziem dostarczanym z JDK i służy do generowania dokumentacji kodu Java w formacie HTML z kodu źródłowego Java, co wymaga dokumentacji w predefiniowanym formacie.

Poniżej znajduje się prosty przykład, w którym linie wewnątrz /* ....*/ to wieloliniowe komentarze Java. Podobnie wiersz poprzedzający znak // to jednowierszowy komentarz Java.

Przykład

/**
* 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!");
   }
}

W części opisu można umieścić wymagane znaczniki HTML. Na przykład w poniższym przykładzie użyto <h1> .... </h1> dla nagłówka, a <p> został użyty do utworzenia podziału akapitu -

Przykład

/**
* <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!");
   }
}

Tagi javadoc

Narzędzie javadoc rozpoznaje następujące tagi -

Etykietka Opis Składnia
@autor Dodaje autora zajęć. @author name-text
{@kod} Wyświetla tekst czcionką kodu bez interpretowania tekstu jako znacznika HTML lub zagnieżdżonych znaczników javadoc. {@code text}
{@docRoot} Reprezentuje względną ścieżkę do katalogu głównego wygenerowanego dokumentu z dowolnej wygenerowanej strony. {@docRoot}
@deprecated Dodaje komentarz wskazujący, że ten interfejs API nie powinien być już używany. @deprecated deprecatedtext
@wyjątek Dodaje Throws podtytuł do wygenerowanej dokumentacji, z nazwą klasy i tekstem opisu. Opis nazwy klasy @ wyjątku
{@inheritDoc} Dziedziczy komentarz z nearest dziedziczona klasa lub implementowalny interfejs. Dziedziczy komentarz z bezpośredniej klasy nadrzędnej.
{@połączyć} Wstawia łącze w wierszu z widoczną etykietą tekstową, która wskazuje dokumentację dla określonego pakietu, klasy lub nazwy elementu członkowskiego klasy, do której się odwołuje. {@link package.class # member label}
{@linkplain} To samo, co {@link}, z tą różnicą, że etykieta linku jest wyświetlana zwykłym tekstem niż czcionka kodu. {@linkplain package.class # etykieta członka}
@param Dodaje parametr z określoną nazwą parametru, po którym następuje określony opis do sekcji „Parametry”. @param opis nazwy parametru
@powrót Dodaje sekcję „Zwroty” z tekstem opisu. @return opis
@widzieć Dodaje nagłówek „Zobacz też” z łączem lub wpisem tekstowym wskazującym na odniesienie. @ zobacz odniesienie
@seryjny Używany w komentarzu do dokumentu dla domyślnego pola możliwego do serializacji. @serial field-description | zawiera | wykluczać
@serialData Dokumentuje dane zapisane przez metody writeObject () lub writeExternal (). @serialData data-description
@serialField Dokumentuje składnik ObjectStreamField. @serialField nazwa-pola typ-pola opis-pola
@od Dodaje nagłówek „Od” z określonym tekstem od początku do wygenerowanej dokumentacji. @ od wydania
@throws Tagi @throws i @exception są synonimami. @throws opis nazwy klasy
{@wartość} Gdy {@value} jest używany w komentarzu dokumentu do pola statycznego, wyświetla wartość tej stałej. {@value package.class # field}
@wersja Dodaje podtytuł „Wersja” z określonym tekstem wersji do wygenerowanych dokumentów, gdy używana jest opcja -version. @version version-text

Przykład

Poniższy program używa kilku ważnych tagów dostępnych w komentarzach do dokumentacji. Możesz użyć innych tagów w zależności od swoich wymagań.

Dokumentacja dotycząca klasy AddNum zostanie utworzona w pliku HTML AddNum.html, ale jednocześnie zostanie również utworzony plik główny o nazwie 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);
   }
}

Teraz przetwórz powyższy plik AddNum.java za pomocą narzędzia javadoc w następujący sposób -

$ 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
$

Całą wygenerowaną dokumentację możesz sprawdzić tutaj - AddNum . Jeśli używasz JDK 1.7, javadoc nie generuje świetnego plikustylesheet.css, dlatego sugerujemy pobranie i używanie standardowego arkusza stylów z https://docs.oracle.com/javase/7/docs/api/stylesheet.css