2009-10-05 25 views
81

Usando Javadoc 1.5, no he podido crear un enlace @ a un valor de Enumeración.Cómo enlazar @ a un Valor Enum usando Javadoc

Lo que me gustaría hacer es crear una enumeración de esta manera:

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 
} 

y luego consulte el Javadoc de la Tierra usando un enlace como este:

{@link Planet.EARTH} 

He probado el {@link Planet#EARTH} estilo también, pero fue en vano.

¿Alguien sabe si esto es factible en absoluto?

Respuesta

126

El # estilo funciona para mí:

{@link Planet#EARTH} 

La clave es que el paquete planeta debe ser importado, o planeta debe ser completo - es decir:

{@link com.something.somethingelse.Planet#EARTH} 
+0

Como señaló sfussenegger, Eclipse maneja la importación por usted. – aperkins

+0

¡Gracias ambas respuestas útiles! Hice que funcione con la referencia totalmente calificada. Algunas veces la salida del compilador no es realmente útil para determinar cuál es el problema ... –

+2

¿Qué sucede si enum se define dentro de la clase A y uno está tratando de hacer referencia a uno de sus valores de la clase B javadoc? No he encontrado ni A.Planet # EARTH ni A # Planet # EARTH para trabajar con OpenJDK 1.6 update 24 javadoc, aunque eclipse sabe encontrar una declaración con el estilo A.Planet # EARTH. –

4

Estoy usando Eclipse para comprobar esto, pero

{@link Planet#EARTH} 

estilo parece funcionar. Sin embargo, normalmente prefiero

@see Planet#EARTH 

de todos modos. No estoy seguro de qué usa Eclipse para generar Javadoc, pero estoy usando JDK6. Aún así, tal vez @see hace el truco para ti.

+2

Me gusta '@ see' pero a veces necesita casos especiales. Por ejemplo, mis pedidos tienen un método 'isWithdrawn()', y específicamente digo '@return true si el estado de esta orden es igual a OrderStatus # WITHDRAWN, false de lo contrario' – corsiKa

2

Mientras se importa puedes vincularlo (pero cuando haces esto, IMO hace las importaciones desordenadas, ¿cuáles se usan en el código y cuáles en javadoc? Me gusta simplemente usar el nombre completo).

Pero sí, Eclipse puede hacerse cargo de todo y estándar

{@link Planet#EARTH} 

funciona bien.

Si usa Eclipse, Ctrl + Shift + O (en PC) o Cmd + Shift + O (en Mac) ajusta automáticamente sus importaciones (esto significa que si tiene importaciones adicionales que no se utilizan, se eliminan, además de agregar las importaciones que necesita).

Cuestiones relacionadas