S-JIS[2024-09-22] 変更履歴
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ではコメントがネストできないので、 |
/// /// ``` /// /* コメント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> |
``` |
バッククォート3つ「``` 」で囲む。 |
強調 | これは <em>強調</em> です。 |
これは _強調_ です。 |
アンダースコア「_ 」もしくはアスタリスク「* 」で囲む。 |
これは *強調* です。 |
|||
太字 | これは <b>太字</b> です。 |
これは **太字** です。 |
|
順序無しリスト (箇条書き) |
<ul> |
- 文章1 |
先頭にハイフン「- 」を付ける。アスタリスク「 * 」でも可。 |
順序付きリスト | <ol> |
1. 文章1 |
数字+ピリオド「. 」。自分で具体的な番号を付ける。 |
テーブル | <table> |
| head1 | head2 | |
@paramや@return・@seeといったタグは、マークダウン形式でもそのまま使える。
あと、マークダウンでは行末に空白を2つ入れると改行を意味するんだけど、マークダウン形式Javadocもそれを踏襲しているようだ。
“エディター上で見えない文字”を使うのはあまり良くないと思うんだけど、まぁ仕様なので仕方ない…。