S-JIS[2024-09-22] 変更履歴

マークダウン形式Javadoc

Javaのマークダウン形式のJavadocのメモ。


概要

Javadocは、パッケージ・クラス・メソッド・フィールド等に付ける、説明用のコメント(ドキュメンテーションコメント)。
これを元にAPIドキュメントを生成する。

従来のJavadocの記述方法はHTMLがベースだったが、Java23からマークダウン形式で記述できるようになった。
従来のJavadocは/** */で囲んでその中に記述していたが、マークダウン形式のJavadocは各行の先頭を///で始めて記述する。

従来の形式 マークダウン形式
    /**
     * 加算.
     *
     * <p>2つの値を加算する。</p>
     * <pre>
     * int r = add(1, 2);
     * </pre>
     *
     * @param arg1 加算する値
     * @param arg2 加算する値
     * @return 加算された値
     */
    public int add(int arg1, int arg2) {
        return arg1 + arg2;
    }
    /// 加算.
    ///
    /// 2つの値を加算する。
    ///
    /// ```
    /// int r = add(1, 2);
    /// ```
    ///
    /// @param arg1 加算する値
    /// @param arg2 加算する値
    /// @return 加算された値
    public int add(int arg1, int arg2) {
        return arg1 + arg2;
    }

Javadocコメントを///で始める形式だと、コード例の中にコメントを含めることが出来て便利。

従来の形式 マークダウン形式
    /**
     * <pre>
     * /* コメント1 */
     * // コメント2
     * </pre>
     */

Javaではコメントがネストできないので、
Javadocコメント内の「*/」でJavadocコメント全体の終了と認識されてしまう。

    /// 
    /// ```
    /// /* コメント1 */
    /// // コメント2
    /// ```
    ///

///で始める形式だと、「*/」は特に意味を持たないので問題ない。


マークダウン形式の例

要素 従来形式の例 マークダウン形式の例 説明
コード {@code true} `true` バッククォート「`」で囲む。
リンク {@link java.util.HashMap} [java.util.HashMap] 角括弧で囲む。
リンク対象を指す構文は「モジュール/パッケージ.クラス#メンバー」。
{@link #equals(Object) equals} [equals][#equals(Object)] 角括弧を2連続で書くと、最初の角括弧内の文が文書上に現れ、次の角括弧内がリンク先となる。
{@link String#copyValueOf(char[])} [String#copyValueOf(char\[\])] 角括弧で囲む都合上、Javaの配列を表す括弧の方は、「\」(バックスラッシュ)でエスケープする必要がある。
コードブロック <pre>
ソースコード
</pre>
```
ソースコード
```
バッククォート3つ「```」で囲む。
強調 これは <em>強調</em> です。 これは _強調_ です。 アンダースコア「_」もしくはアスタリスク「*」で囲む。
これは *強調* です。
太字 これは <b>太字</b> です。 これは **太字** です。  
順序無しリスト
(箇条書き)
<ul>
<li>文章1</li>
<li>文章2</li>
</ul>
- 文章1
- 文章2
先頭にハイフン「-」を付ける。
アスタリスク「*」でも可。
順序付きリスト <ol>
<li>文章1</li>
<li>文章2</li>
</ol>
1. 文章1
2. 文章2
数字+ピリオド「.」。
自分で具体的な番号を付ける。
テーブル <table>
<tr>
<th>head1</th>
<th>head2</th>
</tr>
<tr>
<td>foo</td>
<td>bar</td>
</tr>
</table>
| head1 | head2 |
|-------|-------|
| foo   | bar   |
 

@paramや@return・@seeといったタグは、マークダウン形式でもそのまま使える。

あと、マークダウンでは行末に空白を2つ入れると改行を意味するんだけど、マークダウン形式Javadocもそれを踏襲しているようだ。
“エディター上で見えない文字”を使うのはあまり良くないと思うんだけど、まぁ仕様なので仕方ない…。


Java目次へ戻る / 新機能へ戻る / 技術メモへ戻る
メールの送信先:ひしだま