Cómo aplicar Javadoc a las enumeraciones individuales de una clase

84

Estoy escribiendo el javadoc para una clase que contiene sus propias enumeraciones. ¿Hay alguna forma de generar javadoc para las enumeraciones individuales? Por ejemplo, ahora mismo tengo algo como esto:

/**
 * This documents "HairColor"
 */
private static enum HairColor { BLACK, BLONDE, BROWN, OTHER, RED };

Sin embargo, esto solo documenta todas las enumeraciones como un todo:

El Javadoc generado

¿Hay alguna forma de documentar cada uno de los valores de HairColor individualmente? ¿Sin mover la enumeración a su propia clase o cambiarla de una enumeración?

Gracias de antemano por cualquier ayuda.

Chica codificadora nevada
fuente
Por curiosidad, ¿por qué quieres? Tiene la enumeración enumerada como una privateenumeración anidada, por lo que los usuarios de su clase no pueden usar la enumeración o sus valores de todos modos. Y si está destinado a ser público e independiente, ¿cuál es el problema de documentarlo como su propia unidad?
Mark Peters
2
En mi código real, es público. Y sabes cómo pueden ser los estándares de la empresa. "Esto sería mejor" "Lástima, los que no sabemos nada de programación pensamos que debería hacerlo de esta manera". Lol
Snowy Coder Girl
Lo suficientemente justo. Solo asegúrese de decirles que el lanzamiento se retrasará una semana debido a requisitos inamovibles para la documentación que probablemente nunca se leerá. Eso suele aguzar los oídos de alguien que se preocupa por el negocio.
Mark Peters
1
Jaja. Javadoc no se usa como javadoc. Pero me encanta la codificación. Algunos programadores tienen nombres de métodos que no tienen nada que ver con lo que realmente está sucediendo. Like getCat devuelve todos los gatos que se han subido a un árbol en los últimos 10 días, sin incluir los martes ni los días festivos. Jaja
Chica codificadora nevada
@RachelG. Es todo un fenómeno que todo desarrollador crea que es superior a otros desarrolladores. Sin embargo, sin ofender.
OddDev

Respuestas:

99

Lo haces como cualquier otra variable que harías con javadoc.


/**
 *  Colors that can be used
 */
public enum Color
{
    /**
     * Red color
     */
    red,

    /**
     * Blue color
     */
    blue

}

EDITAR:

De Paŭlo Ebermann: La enumeración es una clase separada. No puede incluir su documentación completa en la clase adjunta (al menos, sin parchear el doclet estándar).

usuario489041
fuente
2
Esto genera lo mismo (observe el enlace en la instantánea). Estoy buscando ponerlos directamente en la clase javadoc (en lugar de vincularlos a otro javadoc). Pero gracias =) +1 por avanzar en la descripción del problema.
Snowy Coder Girl
4
@Rachel: La enumeración es una clase separada. No puede incluir su documentación completa en la clase adjunta (al menos, sin parchear el doclet estándar).
Paŭlo Ebermann
Si. Estaba un poco preocupado que así fuera cuando se produjo el enlace. Supongo que la única forma de incluir las enumeraciones individuales sería cambiarlo a una clase interna y luego declarar los objetos allí y javadoclos.
Snowy Coder Girl
@ user489041: ¿Podría incorporar los comentarios importantes (por ejemplo, el mío) en la respuesta, para referencia futura?
Paŭlo Ebermann
Si desea hacer referencia a él, siempre puede usar {@link Color}o incluso {@link Color#red}por ejemplo, o incluso solo {@link #red}cuando esté en el mismo documento desde cualquier otro javadoc, incluida la clase javadoc.
flungo
69

Puede crear un enlace al elemento de cada enumeración. Todos los elementos se enumerarán en javadocs para enumerar la clase.

/**
 *  Colors that can be used
 *  {@link #RED}
 *  {@link #BLUE}
 */
public enum Color {

    /**
     * Red color
     */
     RED,

    /**
     * Blue color
     */
    BLUE
}
callar
fuente