Javadocを使用して列挙値に@リンクする方法


120

Javadoc 1.5を使用して、列挙値への@リンクを作成できませんでした。

私がしたいことは、このような列挙型を作成することです:

public enum Planet { 

/**
* MERCURY is a fun place.
*/
MERCURY, 

/**
* VENUS is more fun.
*/
VENUS, 

/**
* But nothing beats the Earth.
*/
EARTH,

/**
* Others we know nothing about.
*/ 
OTHERS
}

そして、次のようなリンクを使用して、EarthのJavadocを参照してください。

{@link Planet.EARTH}

私もその{@link Planet#EARTH}スタイルを試しましたが、役に立ちませんでした。

これがまったく可能かどうか誰でも知っていますか?

回答:


195

#スタイルは私のために動作します:

{@link Planet#EARTH}

重要なのは、Planetパッケージをインポートするか、Planet完全に修飾する必要があることです。つまり、

{@link com.yourpackage.Planet#EARTH}

sfusseneggerが指摘したように、Eclipseがインポートを処理します。
aperkins 2009年

両方の回答に感謝します!完全に修飾されたリファレンスを使用して動作させました。コンパイラの出力が問題の特定に役立たない場合があります...
Christer Fahlgren

3
列挙型がクラスA内で定義されていて、クラスBのjavadocからその値の1つを参照しようとしている場合はどうなりますか?私はA.Planet#EARTHもA#Planet#EARTHもOpenJDK 1.6 update 24 javadocで機能しないことを発見しましたが、EclipseはA.Planet#EARTHスタイルの宣言を見つけることを知っています。
StevoSlavić12年

残念ながら、列挙型の静的インポートがある場合は機能しません。あなたは、パッケージなどに完全修飾列挙名を使用しない限り、IntelliJのアイデアでは少なくとも、javadocの中に静的にインポートされた列挙型を使用する方法はありません
dhblah

6

これを確認するためにEclipseを使用していますが、

{@link Planet#EARTH}

スタイルが機能するようです。しかし、私は通常好む

@see Planet#EARTH

とにかく。EclipseがJavadocを生成するために何を使用するかはわかりませんが、私はJDK6を使用しています。それでも、おそらく@seeがあなたのためのトリックを行います。


4
私は好きです@seeが、時には特別なケースが必要です。たとえば、私の注文にはisWithdrawn()方法があり、具体的に言うと@return true if the status of this order is equal to OrderStatus#WITHDRAWN, false otherwise
corsiKa

2

インポートされている限り、リンクできます(ただし、これを行うと、IMOはインポートを混乱させます-コードで使用されているものとjavadocで使用されているものは何ですか?完全修飾名を使用したいだけです)。

しかし、はい、Eclipseはすべてを標準で処理できます

{@link Planet#EARTH}

正常に動作します。

Eclipse、Ctrl + Shift + O(PCの場合)またはCmd + Shift + O(Macの場合)を使用している場合、インポートを自動調整します(つまり、使用されていない追加のインポートがある場合、それらは削除され、追加されます必要なインポート)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.