Как создать Javadoc индивидуальные перечисления класса

84

Я пишу javadoc для класса, который содержит собственные перечисления. Есть ли способ создать javadoc для отдельных перечислений? Например, сейчас у меня что-то вроде этого:

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

Однако это только документирует все перечисления в целом:

Сгенерированный Javadoc

Есть ли способ задокументировать каждое значение HairColor индивидуально? Не перемещая перечисление в собственный класс или не меняя его из перечисления?

Заранее благодарю за любую помощь.

Снежная девушка-кодер
источник
Из любопытства, почему вы хотите? У вас есть перечисление, указанное как privateвложенное перечисление, поэтому пользователи вашего класса в любом случае не могут использовать перечисление или его значения. И если он задуман как общедоступный и автономный, то зачем документировать его как отдельную единицу?
Марк Петерс
2
В моем реальном коде он общедоступен. И вы знаете, какими могут быть стандарты компании. «Так было бы лучше» «Жаль, мы, ничего не разбирающиеся в программировании, думаем, что вам следует делать это таким образом». Lol
Snowy Coder Girl
Справедливо. Просто убедитесь, что вы сказали им, что выпуск будет отложен на неделю из-за неизменных требований к документации, которые, вероятно, никогда не будут прочитаны. Обычно это настораживает тех, кто вообще заботится о своем бизнесе.
Марк Петерс
1
Ха-ха. Javadoc скорее не используется в качестве javadoc. Но я люблю его за кодирование. У некоторых программистов есть имена методов, которые не имеют ничего общего с тем, что на самом деле происходит. Как и getCat, возвращает всех кошек, которые забегали на дерево за последние 10 дней, не считая вторников и праздников. Ха-ха
Snowy Coder Girl
@RachelG. Это феномен, когда каждый разработчик думает, что он / она превосходит других разработчиков. Но без обид.
OddDev

Ответы:

101

Вы делаете это так же, как и любую другую переменную, которую вы бы сделали javadoc.


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

    /**
     * Blue color
     */
    blue

}

РЕДАКТИРОВАТЬ:

От Пало Эберманна: перечисление - это отдельный класс. Вы не можете включить его полную документацию во включающий класс (по крайней мере, без исправления стандартного доклета).

user489041
источник
2
Это генерирует то же самое (обратите внимание на ссылку на снимке). Я хочу поместить их прямо в класс javadoc (а не связывать с другим javadoc). Но спасибо =) +1 за продвижение описания проблемы.
Snowy Coder Girl
4
@Rachel: перечисление - это отдельный класс. Вы не можете включить его полную документацию во включающий класс (по крайней мере, без исправления стандартного доклета).
Palo Ebermann 01
Да уж. Я немного волновался, как это было, когда происходила ссылка. Я предполагаю, что единственный способ включить отдельные перечисления - это изменить его на внутренний класс, а затем объявить там объекты и javadoc.
Snowy Coder Girl
@ user489041: Не могли бы вы включить важные комментарии (например, мой) в ответ для использования в будущем?
Palo Ebermann 01
Если вы хотите ссылаться на него, вы всегда можете использовать {@link Color}или даже {@link Color#red}например, или даже {@link #red}когда в том же документе из любого другого javadoc, включая класс javadoc.
flungo
70

Вы можете создать ссылку на каждый элемент перечисления. Все элементы будут перечислены в javadocs для enum class.

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

    /**
     * Red color
     */
     RED,

    /**
     * Blue color
     */
    BLUE
}
шушпер
источник
Это означает, что поля перечисления необходимо продублировать в общем описании перечисления. Не думайте, что это хорошая идея.
AlexMakarov