Як посилання на значення Enum за допомогою Javadoc


121

Використовуючи Javadoc 1.5, я не зміг створити @link до значення перерахунку.

Що я хотів би зробити, це створити 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}

Як зауважив sfussenegger, Eclipse обробляє імпорт для вас.
aperkins

Дякую обидві відповіді корисні! Я зробив це для роботи, використовуючи повністю кваліфіковану довідку. Іноді вихід компілятора не дуже допомагає визначити, у чому проблема ...
Крістер Фальгрен

3
Що робити, якщо enum визначений у класі A і намагається посилатися на одне зі своїх значень з класу B javadoc? Я не знайшов ні A.Planet # EARTH, ні A # Planet # EARTH для роботи для оновлення OpenJDK 1.6 24 javadoc, хоча затемнення знає декларацію зі стилем A.Planet # EARTH.
Стево Славич

На жаль, це не працює, якщо у вас є статичний імпорт перерахунків. Принаймні, в ідеї intellij немає способу використовувати статично імпортний enum в javadoc, якщо ви не використовуєте повністю кваліфіковану назву enum з пакунками тощо.
dhblah

6

Я використовую Eclipse для перевірки цього, але

{@link Planet#EARTH}

здається, стиль працює. Однак я, як правило, віддаю перевагу

@see Planet#EARTH

все одно. Не впевнений, що Eclipse використовує для створення Javadoc, але я використовую JDK6. Тим не менш, можливо @see робить для вас трюк.


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

2

Поки він імпортований, ви можете зв’язати його (але коли ви це зробите, IMO робить імпорт безладним - які використовуються в коді, а які - у javadoc? Мені подобається просто використовувати повністю кваліфіковане ім’я).

Але так, Eclipse може подбати про це все і стандартно

{@link Planet#EARTH}

працює чудово.

Якщо ви використовуєте Eclipse, Ctrl + Shift + O (на ПК) або Cmd + Shift + O (на Mac), автоматично регулюйте імпорт (це означає, що якщо у вас не використовується додатковий імпорт, його видаляють, а також додають будь-який імпорт, який вам потрібен).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.