どのようにフォーマットの優美なjavadocを書きますか?

6700 ワード

Javaソースを読んだことがあるなら、ソースの中の美しいjavadocを見たはずです.eclipseでは、マウスが任意の公有メソッドを指すと、戻り値、作用、例外タイプなどの詳細な説明が表示されます.
本文は主に『Thinking in java』の内容と私が仕事の中でjavadocを書いた経験から来ています.
3種類の注釈ドキュメント
アノテーションドキュメントには、クラス、ドメイン、メソッドの3つの要素に対応する3つのタイプがあります.すなわち、クラス注釈はちょうどクラス定義の前にある.ドメインコメントは、ドメイン定義の前にあります.メソッドアノテーションは、メソッド定義の前にあります.図に示すように、
//: object/Documentation1.java
/**     */
public class Documentation1 {
    /**     */
    public int i;
    /**      */
    public void f() {}
} ///:~

javadocはpublicおよびprotectedメンバーにのみドキュメントコメントを行うことができます.privateとパッケージ内のアクセス可能なメンバーのコメントは無視されるため、出力結果には表示されません.出力結果を表示するには-privateを使用してタグを付けることができます.これは、ファイルの外で使用できるのは、共通のメンバーと保護されたメンバーだけです.上記のコードで生成されたHTMLドキュメントはブラウザで表示できます.
埋め込みHTML
JAvadocは、生成されたhtmlドキュメントを介してHTMLコマンドを転送し、HTMLを十分に利用できます.
/**
* 

* System.out.println(new date())
* 
*/
///:~
の からも、 は されるので、System.out.println(new date())というコードがあることがわかります.
コメントをHTMLコードでフォーマットすることもできます.
/**
* You can even insert a list:
* 
    *
  1. item one *
  2. item two *
  3. item three *
*/
///:~

のアスタリスクおよびその のスペースの はドキュメントに されません.また、javadocでタイトルラベルを しないでください.たとえば、
または
.これはjavadocが のタイトルを し、あなたのタイトルが する があるからです.
JAvadocラベル
1.@see: のクラスを
@seeラベルを すると、ユーザーが のクラスのドキュメントを できます.JAvadocは、 されたHTMLファイルに@seeタグで のドキュメントにリンクします.フォーマットは のとおりです.
@see   
@see     
@see     #   

フォーマットには、 されたドキュメントにハイパーリンクの「See Also」( )エントリが に されます.javadocでは、 したハイパーリンクはチェックされず、 かどうかは されません.
2.{ @link package.class#member label }
このラベルは@seeと めて ていますが、 で され、「See Also」ではなく「label」をハイパーリンクテキストとして します.
3.{ @docRoot }
このラベルは、ドキュメントツリーページのハイパーリンクの に されるドキュメントルートディレクトリへの パスを します.
4.{ @inheritDoc }
このラベルは、 のクラスの も なベースクラスから、 ドキュメントを のドキュメントコメントに します.
5. @version
フォーマットは のとおりです.
@version version-information

ここで、「version-information」は、バージョンの に した を します.Javadocコマンドラインに「-version」タグを すると、 されたHTMLドキュメントからバージョン が されます.
6. @author
フォーマットは のとおりです.
@author author-information

「author-information」には、お 、 メールアドレス、またはその の な が まれています.Javadocコマンドラインに「-author」タグを すると、 されたHTMLドキュメントから が されます.
このようなタグは、 の に できますが、 に する があります.すべての は、 HTMLコードの の に に されます.
7. @since
このラベルでは、プログラムコードの の バージョンを できます. するJDKバージョンを するためにHTML javaドキュメントに されます.
8. @param
このラベルは、メソッドドキュメントで され、 のように します.
 @param parameter-name description 

ここで、「parameter-name」はパラメータリスト の を し、「description」は の に く を す. しいドキュメントタグに すると、 の が したとみなされます.パラメータごとに1つずつ、 の の を できます.
9. @return
フォーマットは のとおりです.
@return description

ここで、「description」とは、 り を する. ろの に くことができます.
10. @throws
フォーマットは のとおりです.
@throws fully-qualified-class-name description

ここでfully−qualified−class−name descriptionは、 の で された クラスの な を える.descriptionは、この なタイプの がメソッド び しに れる を します.
11.@Deprecated
このラベルは、いくつかの いプロパティが された しいプロパティに って わられている で されます. い される が いため、ユーザーはこれらの いプロパティを しないことをお めします.@Deprescatedとマークされたメソッドを すると、コンパイラに が されます.
ソースコードの
JDK 8のequalsメソッドのコメントを てみましょう.
/**
     * Compares this string to the specified object.  The result is {@code
     * true} if and only if the argument is not {@code null} and is a {@code
     * String} object that represents the same sequence of characters as this
     * object.
     *
     * @param  anObject
     *         The object to compare this {@code String} against
     *
     * @return  {@code true} if the given object represents a {@code String}
     *          equivalent to this string, {@code false} otherwise
     *
     * @see  #compareTo(String)
     * @see  #equalsIgnoreCase(String)
     */
    public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

eclipseでの を てみましょう.
{@code} には されていませんが、 の はわかりやすく、スペースの の をコードに するスタイルです.
で で、メンテナンスしやすい を くには な が です. で にjavadocを う にも、ソースコードを んで、ソースコードの の き を するのもいい です.