web-dev-qa-db-ja.com

Javadocは他のクラスのメソッドにリンクしています

現在、私はこのJavadoc構文で他のクラスのメソッドを参照しています。

@see {@link com.my.package.Class#method()}

そして私がドキュメンテーションから理解していることにおいて、これはこれをする正しい方法です。しかし今面白い部分に、またはイライラする。このjavadocを生成すると、まず最初に次のようなエラーが表示されます。

warning - Tag @see:illegal character: "123" in "{@link com.my.package.Class#method()}"
warning - Tag @see:illegal character: "64" in "{@link com.my.package.Class#method()}"
warning - Tag @see: reference not found: {@link com.my.package.Class#method()}

この生成されたHTMLコードは次のとおりです。

"," <code>com.my.package.Class#method()}</code> ","

そしてもちろん私はリンクがありません。誰が私に何が起こっているのか、そしてこれを修正する方法についての何かのヒントを教えてもらえますか?

WoldのASCIIテーブルの文字123と64によると、{と@を表しています。この構文がドキュメントに従って正しい場合に、なぜこれらの文字が正しくないのでしょうか。

196
Robert

Javadocタグ@seeには、@linkを使用する必要はありません。 Javadocがあなたのためにリンクを作成します。やってみる

@see com.my.package.Class#method()

これは@seeについての詳細な情報です

236
rgettman

@see以外に、他のクラスやそのクラスのメソッドを参照するためのより一般的な方法は{@link somepackage.SomeClass#someMethod(paramTypes)}です。これは、Javadocの説明の途中で使用できるという利点があります。

javadocのドキュメント(@linkタグの説明)から

このタグは@seeと非常によく似ています - 両方とも同じ参照を必要とし、package.class#memberとlabelに対してまったく同じ構文を受け入れます。主な違いは{@link}がリンクを "関連項目"セクションに配置するのではなくインラインリンクを生成することです。また、{@link}タグは、他のインラインテキストと区別するために波括弧で始まり、中括弧で終わります。

127
Javarome

したがって、元の問題の解決策は、同じ行に "@see"と "{@link ...}"の両方の参照が必要ないことです。 "@link"タグは自己完結型であり、前述のように、Javadocブロック内の任意の場所に配置できます。そのため、2つの方法を組み合わせることができます。

/**
 * some javadoc stuff
 * {@link com.my.package.Class#method()}
 * more stuff
 * @see com.my.package.AnotherClass
 */
47
Dave Hentchel