Как @ссылка на значение Enum с помощью Javadoc

121

Используя Javadoc 1.5, мне не удалось создать ссылку @ на значение перечисления.

Я хотел бы создать такой Enum:

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
}

А затем обратитесь к Javadoc для Земли, используя ссылку, подобную этой:

{@link Planet.EARTH}

Я тоже пробовал этот {@link Planet#EARTH}стиль, но безуспешно.

Кто-нибудь знает, возможно ли это вообще?

Кристер Фальгрен
источник

Ответы:

197

#Мне подходит стиль:

{@link Planet#EARTH}

Ключевым моментом является то, что Planetпакет должен быть импортирован или Planetдолжен быть полностью квалифицированным, то есть:

{@link com.yourpackage.Planet#EARTH}
aperkins
источник
Как заметил Сфуссенеггер, Eclipse выполняет импорт за вас.
Aperkins 05
Спасибо, оба ответа полезны! Я заставил его работать, используя полностью квалифицированную ссылку. Иногда выходные данные компилятора не очень помогают определить, в чем проблема ...
Кристер Фальгрен,
3
Что, если перечисление определено в классе A, и кто-то пытается ссылаться на одно из его значений из класса B javadoc? Я не нашел ни A.Planet # EARTH, ни A # Planet # EARTH для работы с OpenJDK 1.6 update 24 javadoc, хотя eclipse знает, как найти объявление в стиле A.Planet # EARTH.
Стево Славич
К сожалению, это не сработает, если у вас есть статический импорт enum. По крайней мере, в идее intellij нет возможности использовать статически импортированное перечисление в javadoc, если только вы не используете полное имя перечисления с пакетами и т. Д.
dhblah
6

Я использую Eclipse, чтобы проверить это, но

{@link Planet#EARTH}

стиль, кажется, работает. Однако обычно я предпочитаю

@see Planet#EARTH

тем не мение. Не уверен, что Eclipse использует для создания документации Javadoc, но я использую JDK6. Тем не менее, возможно, @see поможет вам.

sfussenegger
источник
4
Мне нравится, @seeно иногда нужны особые случаи. Например, у моих заказов есть isWithdrawn()метод, а я конкретно говорю@return true if the status of this order is equal to OrderStatus#WITHDRAWN, false otherwise
corsiKa 03
2

Пока он импортирован, вы можете связать его (но когда вы это сделаете, IMO сделает импорт беспорядочным - какие из них используются в коде, а какие в javadoc? Мне нравится просто использовать полное имя).

Но да, Eclipse может позаботиться обо всем и стандартно

{@link Planet#EARTH}

работает отлично.

Если вы используете Eclipse, Ctrl + Shift + O (на ПК) или Cmd + Shift + O (на Mac) автоматически настраивает ваш импорт (это означает, что если у вас не используются дополнительные импорты, они удаляются, а также добавляются любой импорт, который вам нужен).

разъем
источник