Wie man die individuellen Aufzählungen einer Klasse Javadoc


82

Ich schreibe das Javadoc für eine Klasse, die ihre eigenen Aufzählungen enthält. Gibt es eine Möglichkeit, Javadoc für die einzelnen Aufzählungen zu generieren? Zum Beispiel habe ich gerade so etwas:

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

Dies dokumentiert jedoch nur alle Aufzählungen als Ganzes:

Der generierte Javadoc

Gibt es eine Möglichkeit, jeden der HairColor-Werte einzeln zu dokumentieren? Ohne die Aufzählung in eine eigene Klasse zu verschieben oder von einer Aufzählung zu ändern?

Vielen Dank im Voraus für jede Hilfe.


Warum willst du aus Neugier? Sie haben die Aufzählung als privateverschachtelte Aufzählung aufgeführt, sodass Benutzer Ihrer Klasse die Aufzählung oder ihre Werte ohnehin nicht verwenden können. Und wenn es öffentlich und eigenständig sein soll, was ist dann die große Sache bei der Dokumentation als eigene Einheit?
Mark Peters

2
In meinem eigentlichen Code ist es öffentlich. Und Sie wissen, wie Unternehmensstandards sein können. "Das wäre besser" "Schade, wir, die wir nichts über Programmierung wissen, denken, Sie sollten es so machen." Lol
Snowy Coder Girl

Meinetwegen. Stellen Sie nur sicher, dass Sie ihnen mitteilen, dass die Veröffentlichung aufgrund unbeweglicher Anforderungen an die Dokumentation, die wahrscheinlich nie gelesen werden, um eine Woche verschoben wird. Das spitzt normalerweise die Ohren von jemandem, der sich überhaupt um das Geschäft kümmert.
Mark Peters

1
Haha. Javadoc wird eher nicht als Javadoc verwendet. Aber ich liebe es zum Codieren. Einige Programmierer haben Methodennamen, die nichts mit dem zu tun haben, was tatsächlich vor sich geht. Wie getCat gibt alle Katzen zurück, die in den letzten 10 Tagen einen Baum hochgerannt haben, ohne Dienstage oder Feiertage. Haha
Snowy Coder Girl

@ RachelG. Es ist ein ziemliches Phänomen, dass jeder Entwickler glaubt, er / sie sei anderen Entwicklern überlegen. Nichts für ungut.
OddDev

Antworten:


98

Sie tun es wie jede andere Variable, die Sie javadoc würden.


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

    /**
     * Blue color
     */
    blue

}

BEARBEITEN:

Von Paŭlo Ebermann: Die Aufzählung ist eine separate Klasse. Sie können die vollständige Dokumentation nicht in die einschließende Klasse aufnehmen (zumindest ohne das Standard-Doclet zu patchen).


2
Dies erzeugt dasselbe (beachten Sie den Link auf dem Schnappschuss). Ich möchte sie direkt in die Klasse Javadoc einfügen (anstatt sie mit einem anderen Javadoc zu verknüpfen). Aber danke =) +1 für die Weiterentwicklung der Problembeschreibung.
Snowy Coder Girl

4
@ Rachel: Die Aufzählung ist eine separate Klasse. Sie können die vollständige Dokumentation nicht in die einschließende Klasse aufnehmen (zumindest ohne das Standard-Doclet zu patchen).
Paŭlo Ebermann

Ja. Ich war irgendwie besorgt, dass es so war, als die Verknüpfung stattfand. Ich denke, die einzige Möglichkeit, die einzelnen Aufzählungen einzuschließen, besteht darin, sie in eine innere Klasse zu ändern und dann die Objekte dort zu deklarieren und sie zu javadocieren.
Snowy Coder Girl

@ user489041: Könnten Sie die wichtigen Kommentare (z. B. meine) in die Antwort aufnehmen, um später darauf zurückgreifen zu können?
Paŭlo Ebermann

Wenn Sie darauf verweisen möchten, können Sie immer {@link Color}oder sogar {@link Color#red}zum Beispiel oder auch nur {@link #red}im selben Dokument aus einem anderen Javadoc, einschließlich der Klasse Javadoc, verwenden.
Flungo

69

Sie können einen Link zu jedem Element der Aufzählung erstellen. Alle Elemente werden in Javadocs aufgelistet, um die Klasse aufzuzählen.

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

    /**
     * Red color
     */
     RED,

    /**
     * Blue color
     */
    BLUE
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.