Jak @link do wartości wyliczenia przy użyciu Javadoc

121

Używając Javadoc 1.5, nie mogłem utworzyć @link do wartości wyliczenia.

To, co chciałbym zrobić, to utworzyć wyliczenie w następujący sposób:

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
}

Następnie odwołaj się do Javadoc for Earth, korzystając z takiego linku:

{@link Planet.EARTH}

Próbowałem też {@link Planet#EARTH}stylu, ale bezskutecznie.

Czy ktoś wie, czy jest to w ogóle wykonalne?

Christer Fahlgren
źródło

Odpowiedzi:

197

#Styl działa dla mnie:

{@link Planet#EARTH}

Kluczowe jest to, że Planetpakiet musi zostać zaimportowany lub Planetmusi być w pełni kwalifikowany - tj .:

{@link com.yourpackage.Planet#EARTH}
aperkins
źródło
Jak zauważył sfussenegger, Eclipse obsługuje importowanie za Ciebie.
aperkins
Dzięki obu odpowiedziom pomocne! Udało mi się go uruchomić przy użyciu w pełni kwalifikowanego odniesienia. Czasami dane wyjściowe kompilatora nie są naprawdę pomocne w określeniu problemu ...
Christer Fahlgren
3
Co się stanie, jeśli enum jest zdefiniowane w klasie A i próbujemy odwołać się do jednej z jego wartości z klasy B javadoc? Nie znalazłem ani A.Planet # EARTH, ani A # Planet # EARTH do pracy dla OpenJDK 1.6 aktualizacja 24 javadoc, chociaż eclipse wie, aby znaleźć deklarację w stylu A.Planet # EARTH.
Stevo Slavić
Niestety, to nie działa, jeśli masz statyczny import enum. Przynajmniej w intellij idea nie ma możliwości użycia statycznie importowanego wyliczenia w javadoc, chyba że używasz w pełni kwalifikowanej nazwy wyliczenia z pakietami itp.
dhblah
6

Aby to sprawdzić, używam Eclipse, ale

{@link Planet#EARTH}

styl wydaje się działać. Jednak normalnie wolę

@see Planet#EARTH

tak czy siak. Nie jestem pewien, czego używa Eclipse do generowania Javadoc, ale używam JDK6. Jednak może @see załatwi sprawę za Ciebie.

sfussenegger
źródło
4
Lubię, @seeale czasami potrzebujesz specjalnych przypadków. Na przykład moje zamówienia mają isWithdrawn()metodę, a ja konkretnie mówię@return true if the status of this order is equal to OrderStatus#WITHDRAWN, false otherwise
corsiKa
2

Dopóki jest zaimportowany, możesz go połączyć (ale kiedy to zrobisz, IMO powoduje bałagan importu - które z nich są używane w kodzie, a jakie w javadoc? Lubię po prostu używać w pełni kwalifikowanej nazwy).

Ale tak, Eclipse może zająć się tym wszystkim i standardowo

{@link Planet#EARTH}

działa w porządku.

Jeśli używasz Eclipse, Ctrl + Shift + O (na PC) lub Cmd + Shift + O (na Macu) automatycznie dostosowujesz import (oznacza to, że jeśli nie używasz dodatkowych importów, są one usuwane, a także dodawane wszelkie potrzebne importy).

Jacek
źródło