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もそれを踏襲しているようだ。
“エディター上で見えない文字”を使うのはあまり良くないと思うんだけど、まぁ仕様なので仕方ない…。