2013-07-05 1 views
141

現在、私は、この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は、{と@を表しているため、この構文がドキュメントに基づいて正しい場合、なぜこれらの文字が有効でないのですか?

+1

Javadoc Generatorのドキュメントを読んでください。 http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#link –

+0

このJavaDocが記述されているクラスに 'com.my.package.Class'をインポートしましたか? _reference not found_が奇妙に見えます。一方、私はそれらを組み合わせて使用​​したことはありませんが、 '@ see'と' @link'が互いに衝突する可能性があります。 – Gamb

+1

@DiogoMoreira - いいえ、私はエンジンについて読んでいませんが、私はそれをチェックします。 – Robert

答えて

183

Javadocタグ@seeの場合は、@linkを使用する必要はありません。 Javadocはあなたのためのリンクを作成します。別に@seeから

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

Here's more info about @see.

+0

ありがとう、このソリューションを試したところ、これはうまくいきました!しかし、私は非常に多くの場所でこれを動作させるためにリンクを使用すべきであることを読んだので、それはちょっと変わったものです... – Robert

+6

Javadocがまだ変わっていない他の場所で '@ link'を使うことができますリンク、例えば'@param'の説明、' @ return'の説明、説明の主要部分など – rgettman

+0

これを試したときに、メソッドはプレーンテキストとして表示されます。ローカルメソッド。 – JesseBoyd

95

を試してみて、別のクラスに参照のうえ、おそらくそのクラスのメソッドのより一般的な方法は{@link somepackage.SomeClass#someMethod(paramTypes)}です。これは、javadocの記述の途中で使用できるという利点があります。

javadoc documentation (description of the @link tag)

This tag is very simliar to @see – both require the same references and accept exactly the same syntax for package.class#member and label. The main difference is that {@link} generates an in-line link rather than placing the link in the "See Also" section. Also, the {@link} tag begins and ends with curly braces to separate it from the rest of the in-line text.

26

ので、元の問題を解決するには、あなたが同じの「@see」と「{@link ...}」の参照の両方を必要としないということですライン。 "@link"タグは自立しており、javadocブロックのどこにでも置くことができます。したがって、2つのアプローチを混在させることができます:

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

これは、他の2つの回答が '@link'または '@see'が複数行コメントになる必要があることを示していないので、受け入れる必要があります。/ ** */1行ではない – Sniper

+0

@Sniper、 '{@link}単列のJavadocコメントでうまくいけば、 '//'で始まるコメントではうまくいきません。 '/ ** * /'はJavadocであり、任意のJavadoc関数に必要です。 – Jase

+0

はい@Jase私はこのコメントが/ ** * /である必要がありますが、これは正確に満たされていますが、// – Sniper