Java ドキュメントコメント

Java は3つのコメント方法をサポートしています:

  • 単行コメント
  • 複数行コメント
  • ドキュメントコメント

前の2つはそれぞれ//と/* */、3つ目はドキュメントコメントと呼ばれ、それは/**で始まり、*/で終わります。

前の2つのコメントの内容については次を参照してください:Java コメント

ドキュメントコメントを使用すると、プログラムに関する情報をプログラムに埋め込むことができます。

javadoc ツールソフトウェアを使用して情報を生成し、HTML ファイルに出力できます。

ドキュメントコメントを使用すると、プログラム情報をより簡単に記録できます。


javadoc タグ

javadoc ツールソフトウェアは次のタグを認識します:

タグ 説明 例
@author クラスの作者を識別します @author description
@deprecated 非推奨のクラスまたはメンバーを指定します @deprecated description
{@docRoot} 現在のドキュメントのルートディレクトリのパスを指定します Directory Path
@exception クラスがスローする例外をマークします @exception exception-name explanation
{@inheritDoc} 直接の親クラスから継承されたコメント Inherits a comment from the immediate surperclass.
{@link} 別のトピックへのリンクを挿入します {@link name text}
{@linkplain} 別のトピックへのリンクを挿入しますが、そのリンクはプレーンテキストフォントで表示されます Inserts an in-line link to another topic.
@param メソッドのパラメータを説明します @param parameter-name explanation
@return 戻り値の型を説明します @return explanation
@see 別のトピックへのリンクを指定します @see anchor
@serial シリアル化属性を説明します @serial description
@serialData writeObject( ) および writeExternal( ) メソッドによって書き込まれるデータを説明します @serialData description
@serialField ObjectStreamField コンポーネントを説明します @serialField name type description
@since 特定の変更が導入されたときをマークします @since release
@throws @exception タグと同じです。 The @throws tag has the same meaning as the @exception tag.
{@value} static 属性である必要がある定数の値を表示します Displays the value of a constant, which must be a static field.
@version クラスのバージョンを指定します @version info

ドキュメントコメント

開始の/**後で、最初の1行または数行は、クラス、変数、メソッドに関する主な説明です。

その後、1つまたは複数のさまざまな@タグ。それぞれの@タグは、新しい行の先頭、または行の先頭でアスタリスクの直後になければなりません。*。

同じタイプのタグが複数ある場合は、1つのグループにまとめる必要があります。たとえば、3つの@seeタグがある場合は、それらを1つずつ連続して配置できます。

以下はクラスの安定したコメントの例です:

/*** このクラスは棒グラフを描画します * @author サンプル * @version 1.2 */

javadoc が出力するもの

javadoc ツールは、Java プログラムのソースコードを入力として受け取り、プログラムのコメントを含むいくつかの HTML ファイルを出力します。

各クラスの情報は個別の HTML ファイルに含まれます。javadoc は継承ツリー構造とインデックスも出力できます。

javadoc の実装によって動作も異なる場合があるため、Java 開発システムのバージョンなどの詳細を確認し、適切な Javadoc バージョンを選択する必要があります。

例

以下は、説明コメントを使用した簡単な例です。各コメントが、それが説明する項目の前にあることに注意してください。

javadoc 処理の後、SquareNum クラスのコメントは SquareNum.html にあります。

SquareNum.java ファイルのコード:

import java.io.*; /** * このクラスはドキュメントコメントを説明しています * @author Ayan Amhed * @version 1.2 */ public class SquareNum { /** * This method returns the square of num. * This is a multiline description. You can use * as many lines as you like. * @param num The value to be squared. * @return num squared. */ public double square(double num) { return num * num; } /** * This method inputs a number from the user. * @return The value input as a double. * @exception IOException On input error. * @see IOException */ public double getNumber() throws IOException { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader inData = new BufferedReader(isr); String str; str = inData.readLine(); return (new Double(str)).doubleValue(); } /** * This method demonstrates square(). * @param args Unused. * @return Nothing. * @exception IOException On input error. * @see IOException */ public static void main(String args[]) throws IOException { SquareNum ob = new SquareNum(); double val; System.out.println("Enter value to be squared: "); val = ob.getNumber(); val = ob.square(val); System.out.println("Squared value is " + val); } }

次のように、javadoc ツールを使用して SquareNum.java ファイルを処理します:

$ javadoc SquareNum.java
Loading source file SquareNum.java...
Constructing Javadoc information...
Standard Doclet version 1.5.0_13
Building tree for all the packages and classes...
Generating SquareNum.html...
SquareNum.java:39: 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...
Generating stylesheet.css...
1 warning
$
その他の拡張