@seeと@inheritDocの違いの詳細


87

JavaDocリファレンスを調べましたが、@see(さまざまなリンク)と{@inheritDoc}(スーパークラスJavaDocコメントのエクスポート)の基本的な違いは理解していますが、実際にどのように実装されているかを明確にする必要があります。

Eclipse IDEで、継承されたメソッドに「要素コメントの生成」を選択すると(インターフェイスから、またはtoString()オーバーライドなど)、次のコメントが作成されます

/* (non-Javadoc)
 * @see SomeClass#someMethod()
 */

私はそのままにしておく必要があります私は農産物のJavaDocを必要としていた場合は、交換する@see{@inheritDoc}、またはそれを回し善意などのJavaDoc:

/**
 * {@inheritDoc}
 */

それを行うときでも、class#methodフラグを保持する必要がありますか?

回答:


142

まず、元の日食テンプレートはノイズが多いジャンクなので、削除する必要があります。意味のあるドキュメントを入れるか、何も入れないでください。しかし、IDEテンプレートを使用して明白なことを言い換えると、コードが乱雑になります。

あなたは農産物のjavadocに必要とされる場合には、第2、あなたは持っているとのコメント開始を作ること/**。それ以外の場合は、javadocではありません。

最後に、オーバーライドする場合は、を使用する必要があります@inheritDoc(@sehがコメントで指摘したように、元のドキュメントに追加する場合、元のドキュメントを複製するだけの場合は、何も必要ありません)。@see実際には、他の関連するメソッドを参照するためにのみ使用する必要があります。


75
元のスーパークラスのドキュメント@inheritDoc追加する場合にのみ使用してください。単に複製したいだけの場合、Javadocはすでにそれを実行します。サブクラスが追加のドキュメントを提供しなかったため、スーパークラスのドキュメントがサブクラスのオーバーライドされたメソッドに適用されることに注意してください。
seh 2012

4
ドキュメントの有無にかかわらずドキュメントを生成しましたが、@inheritDoc違いは見られません。がなくても@inheritDoc、派生クラスのJavadocが基本クラスに追加されていることがわかります。
randominstanceOfLivingThing 2014年

checkstyleが「メソッドは拡張用に設計されていないようです」と文句を言うので、私はここに来ました。@inheritDoc親メソッドを実装/上書きする方法、特にその方法で実行する理由など、実装固有のドキュメントを使用してから追加することをお勧めします。
ベン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.