29

以前に定義されたフィールドのコメントに基づいて、EclipseがgetterメソッドとsetterメソッドのJavadocコメントを自動的に生成するようにします。どうすればこれを達成できますか?

背景:当社のポリシーは、すべてのメソッドとフィールドにコメントを付けることです(わかりやすい名前が付いている場合でも)。したがって、フィールドを記述し、ゲッター/セッターを再度記述して、冗長な作業を行う必要があります。

例:

/**
 * name of the dynamic strategy
 */
private String dynName;

/**
 * get the name of the dynamic strategy
 * @return
 */
public String getDynName() {
    return dynName;
}

Webを検索したところ、問題を抱えているのは私だけではないことがわかりましたが、解決策は見つかりませんでした。http://jautodoc.sourceforge.net/をチェックアウトしましたが、これを実行できないようです。

4

9 に答える 9

15

バージョン 1.6 (質問の 1 年後) 以降の JAutodoc には、新しいオプション "[G,S]etter from field comment" があり、これはまさにあなたが望むことを行います。

これはかなり便利な機能です。フィールド コメントは通常、最終的な Javadoc HTML には含まれません。これは、プライベート メンバーである可能性があるためです (プライベート メンバーごとに Javadoc を生成するのも適切ではありません)。コメントがなければ、コメントは完全に失われます。

この Q/A スレッドが、作者にこの素晴らしい機能を実装する動機を与えたのではないかと思います。

于 2011-11-15T22:54:53.127 に答える
5

私はついに自分で解決策(または少なくとも回避策)を見つけました。私はSOでスプーンについて読みました。これは、Javaソースファイルの読み取りと変更を可能にするJavaプログラムプロセッサです。EclipseプラグインまたはAnt/Mavenスクリプトとしても使用できます。

あなたがしなければならないことはすべて、メソッドを処理するAbstractProcessorを拡張することです。メソッド名がget/setで始まる場合、対応するフィールドを検索し、そのコメントを抽出して、アクセサーのコメントを置き換えまたは拡張します。

私は小さなアリのスクリプトを持っています。それは私のすべてのソースを取り、それらを処理します。

もちろん、Eclipseコードテンプレートに統合されたものの方が便利ですが、今のところ、この方法で問題ありません。

于 2009-07-01T12:33:11.283 に答える
4

ドキュメントの複製が問題であることに同意します。プライベート変数を文書化してから、アクセサ メソッドでその文書へのリンクを提供するのはどうですか?

(明らかに、次の解決策は非常に単純なアクセサー メソッド用です。特に、アクセサー メソッドが実際に注目すべきことを行う場合は、API でプライベート変数のドキュメントを公開する必要はありません。)

public class MyBean {

/**
 * The names description
 */
private String name;

/**
 * @return {@link #name}
 */
public String getName() {
    return name;
}

/**
 * @param name {@link #name}
 */
public void setName(String name) {
    this.name = name;
}
}

Eclipse を使用している場合は、次 のように javadoc でプライベート変数の参照を有効にする必要がある場合があることに注意してください。

  • パッケージ エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。
  • Java Compilerノードを折りたたみ、Javadocを選択します。
  • [プロジェクト固有の設定を有効にする] を選択し、[メンバーのみを次のように表示できると見なす]で [非公開]を選択します。

    検索のパフォーマンスが影響を受けると思いますが、まだどの程度テストされていません。

  • 于 2013-02-05T10:30:26.523 に答える
    4

    Eclipse のツールを使用してメソッドをオーバーライド/実装する場合... ソース メニューから、javadoc コメントを自動的に生成するオプションがあります。設定 -> Java -> コード スタイル -> コード テンプレート -> コメントで変更できるコメント テンプレートがあります。

    于 2009-06-15T13:26:20.547 に答える
    2

    マクロ言語を使用している場合は、「テキストを入力できるポップアップを開き、テンプレートに基づいて javadoc を含むゲッターとセッターを生成する」などの関数を作成できます。

    Eclipse は実際にはそのようなマクロ言語を実際にサポートしていませんが、とにかく次の記事を参照してください: Is there a Macro Recorder for Eclipse?

    Eclipse と別のツールを切り替えることに抵抗がない場合は、強力な beanshell マクロ言語を含む JEdit (jedit.org) を試すことができます。このように、eclipse & jedit を開いて、処理したいファイルを eclipse から jedit にドラッグ & ドロップし、jedit マクロ機能を使用して、ファイルを保存し、最後に eclipse 内でファイルを更新します。

    少し面倒ですが、一部の処理については、私がうまく採用した方法です。

    于 2009-06-15T20:14:10.710 に答える
    1

    IntelliJ IDEA用のJavadocWriterプラグインは、「javadocをフィールドからアクセサーにスマートコピーする」と述べています。警告ユーティリティ:私はプラグインを自分で試したことがなく、3年間更新されていません。

    于 2009-06-15T14:32:06.660 に答える
    1

    IMHO コメントを自動的に生成できる場合、コメントはあまり価値がありません。
    メソッド getDynamicStrategyName() を呼び出した場合、名前にはコメントに入れるすべての情報が含まれているため、コメントする必要はありません。

    于 2009-06-16T20:34:39.263 に答える
    1

    Eclipse Luna 4.4 を使用しています。

    • メニューWindow\Preferencesを選択し、Java\ Code Style\を選択しますCode Templates。セクションを選択Comments\ Getters| Setters、 ボタン を押しますEdit...

    ここに画像の説明を入力

    • 多くの既存の変数があります。ボタンを使用してくださいInsert Variable...

      ここに画像の説明を入力

    • コメント形式を編集し、 ボタンを押してからApplyを押しOKて終了します。

    于 2015-05-17T01:34:48.210 に答える
    0

    実際、JAutodoc はフィールド コメントに基づいて getter/setter のコメントを生成できます。「要素名からコメントを作成する」オプションをチェックする必要があります。ドキュメントについてはhttp://jautodoc.sourceforge.net/を参照してください。

    于 2011-07-25T07:28:19.687 に答える