Come @link a un valore Enum utilizzando Javadoc


121

Utilizzando Javadoc 1.5, non sono stato in grado di creare un collegamento @ a un valore di enumerazione.

Quello che vorrei fare è creare un Enum come questo:

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
}

Quindi fai riferimento a Javadoc per la Terra usando un collegamento come questo:

{@link Planet.EARTH}

Ho provato anche lo {@link Planet#EARTH}stile, ma senza successo .

Qualcuno sa se questo è fattibile?

Risposte:


197

Lo #stile funziona per me:

{@link Planet#EARTH}

La chiave è che il Planetpacchetto deve essere importato o Planetdeve essere completamente qualificato, ad esempio:

{@link com.yourpackage.Planet#EARTH}

Come ha notato sfussenegger, Eclipse gestisce l'importazione per te.
aperkins

Grazie entrambe le risposte utili! L'ho fatto funzionare utilizzando il riferimento completo. A volte l'output del compilatore non è molto utile per determinare quale sia il problema ...
Christer Fahlgren,

3
Cosa succede se enum è definito all'interno della classe A e si sta cercando di fare riferimento a uno dei suoi valori dalla classe B javadoc? Non ho trovato né A.Planet # EARTH né A # Planet # EARTH funzionanti per OpenJDK 1.6 aggiornamento 24 javadoc, sebbene eclipse sappia di trovare dichiarazioni con lo stile A.Planet # EARTH.
Stevo Slavić

Sfortunatamente questo non funziona se hai un'importazione statica di enum. Almeno nell'idea di intellij non c'è modo di usare un'enumerazione importata staticamente in javadoc, a meno che non si usi il nome
dell'enumerazione

6

Sto usando Eclipse per controllare questo, ma

{@link Planet#EARTH}

lo stile sembra funzionare. Tuttavia, normalmente preferisco

@see Planet#EARTH

Comunque. Non sono sicuro di cosa Eclipse utilizzi per generare Javadoc, ma sto usando JDK6. Tuttavia, forse @see fa il trucco per te.


4
Mi piace @seema a volte hai bisogno di casi speciali. Ad esempio, i miei ordini hanno un isWithdrawn()metodo e dico specificamente@return true if the status of this order is equal to OrderStatus#WITHDRAWN, false otherwise
corsiKa

2

Finché è importato puoi collegarlo (ma quando lo fai, IMO rende le importazioni disordinate: quali sono usati nel codice e quali in javadoc? Mi piace usare solo il nome completo).

Ma sì, Eclipse può prendersi cura di tutto e standard

{@link Planet#EARTH}

funziona bene.

Se stai usando Eclipse, Ctrl + Maiusc + O (su PC) o Cmd + Maiusc + O (su Mac) regola automaticamente le tue importazioni (questo significa che se non hai importazioni extra in uso, vengono rimosse, oltre ad aggiungere eventuali importazioni di cui hai bisogno).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.