Jak wykonać Javadoc indywidualne wyliczenia klasy

84

Piszę javadoc dla klasy, która zawiera własne wyliczenia. Czy istnieje sposób na wygenerowanie javadoc dla poszczególnych wyliczeń? Na przykład w tej chwili mam coś takiego:

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

Jednak to tylko dokumentuje wszystkie wyliczenia jako całość:

Wygenerowany plik Javadoc

Czy istnieje sposób na osobne udokumentowanie każdej wartości HairColor? Bez przenoszenia wyliczenia do własnej klasy lub zmieniania go z wyliczenia?

Z góry dziękuję za jakąkolwiek pomoc.

Snowy Coder Girl
źródło
Z ciekawości, dlaczego chcesz? Masz wyliczenie wymienione jako privatezagnieżdżone wyliczenie, więc użytkownicy Twojej klasy i tak nie mogą używać wyliczenia ani jego wartości. A jeśli ma być publiczna i samodzielna, to jaka jest wielka sprawa w dokumentowaniu jej jako własnej jednostki?
Mark Peters
2
W moim rzeczywistym kodzie jest to publiczne. I wiesz, jakie mogą być standardy firmy. „Tak byłoby lepiej” „Szkoda, my, którzy nie wiemy nic o programowaniu, uważamy, że powinieneś to robić w ten sposób”. Lol
Snowy Coder Girl
Słusznie. Po prostu upewnij się, że powiesz im, że wydanie zostanie przesunięte o tydzień z powodu nieusuwalnych wymagań dotyczących dokumentacji, która prawdopodobnie nigdy nie zostanie przeczytana. To zazwyczaj przykuwa uszy kogoś, komu w ogóle zależy na biznesie.
Mark Peters
1
Ha ha. Javadoc jest raczej nieużywany jako javadoc. Ale uwielbiam to kodować. Niektórzy programiści mają nazwy metod, które nie mają nic wspólnego z tym, co się faktycznie dzieje. Podobnie jak getCat zwraca wszystkie koty, które wbiegły na drzewo w ciągu ostatnich 10 dni, z wyłączeniem wtorków i świąt. Haha
Snowy Coder Girl
@RachelG. To fenomen, że każdy deweloper uważa, że ​​jest lepszy od innych twórców. Ale bez obrazy.
OddDev

Odpowiedzi:

99

Robisz to tak jak każdą inną zmienną, którą zrobiłbyś javadoc.


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

    /**
     * Blue color
     */
    blue

}

EDYTOWAĆ:

Od Paŭlo Ebermanna: wyliczenie jest oddzielną klasą. Nie możesz dołączyć jego pełnej dokumentacji do otaczającej klasy (przynajmniej bez łatania standardowej dokumentacji).

user489041
źródło
2
Generuje to to samo (zwróć uwagę na link na migawce). Chcę umieścić je bezpośrednio w klasie javadoc (zamiast łączyć się z innym javadoc). Ale dzięki =) +1 za postęp w opisie problemu.
Snowy Coder Girl
4
@Rachel: Wyliczenie to osobna klasa. Nie możesz dołączyć jego pełnej dokumentacji do otaczającej klasy (przynajmniej bez łatania standardowej dokumentacji).
Paŭlo Ebermann
Tak. Martwiłem się, że tak właśnie było, kiedy pojawiało się łącze. Wydaje mi się, że jedynym sposobem dołączenia poszczególnych wyliczeń byłaby zmiana jej na klasę wewnętrzną, a następnie zadeklarowanie tam obiektów i javadoc.
Snowy Coder Girl
@ user489041: Czy mógłbyś dołączyć ważne komentarze (np. mój) do odpowiedzi, na przyszłość?
Paŭlo Ebermann
Jeśli chcesz się do niego odwołać, zawsze możesz użyć, {@link Color}a nawet {@link Color#red}na przykład, a nawet po prostu {@link #red}w tym samym dokumencie z dowolnego innego javadoc, w tym klasy javadoc.
flungo
69

Możesz utworzyć link do pozycji każdego wyliczenia. Wszystkie elementy zostaną wymienione w javadocs do klasy wyliczeniowej.

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

    /**
     * Red color
     */
     RED,

    /**
     * Blue color
     */
    BLUE
}
shushper
źródło