132 votes

Comment faire un @lien vers une valeur Enum en utilisant Javadoc

En utilisant Javadoc 1.5, je n'ai pas réussi à créer un @lien vers une valeur d'énumération.

Ce que je voudrais faire, c'est créer un Enum comme ceci :

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
}

Et ensuite, faites référence à la Javadoc pour Earth en utilisant un lien comme celui-ci :

{@link Planet.EARTH}

J'ai essayé le {@link Planet#EARTH} aussi, mais en vain.

Quelqu'un sait-il si c'est faisable ?

215voto

aperkins Points 4959

En # Ce style me convient :

{@link Planet#EARTH}

L'essentiel est que le Planet doit être importé, ou Planet doivent être entièrement qualifiés - c'est-à-dire :

{@link com.yourpackage.Planet#EARTH}

0 votes

Comme l'a noté sfussenegger, Eclipse gère l'importation pour vous.

0 votes

Merci, les deux réponses sont utiles ! J'ai réussi à le faire fonctionner en utilisant la référence entièrement qualifiée. Parfois, la sortie du compilateur n'est pas vraiment utile pour déterminer quel est le problème...

3 votes

Que se passe-t-il si l'enum est défini dans la classe A et que l'on essaie de référencer une de ses valeurs dans la javadoc de la classe B ? J'ai trouvé que ni A.Planet#EARTH ni A#Planet#EARTH ne fonctionnent pour la javadoc d'OpenJDK 1.6 update 24, bien qu'eclipse sache trouver les déclarations avec le style A.Planet#EARTH.

7voto

sfussenegger Points 16204

J'utilise Eclipse pour le vérifier, mais

{@link Planet#EARTH}

semble fonctionner. Cependant, je préfère normalement

@see Planet#EARTH

de toute façon. Je ne sais pas ce qu'Eclipse utilise pour générer la Javadoc, mais j'utilise le JDK6. Néanmoins, @see peut peut-être faire l'affaire pour vous.

4 votes

J'aime @see mais parfois vous avez besoin de cas particuliers. Par exemple, mes commandes ont un isWithdrawn() méthode, et je dis spécifiquement @return true if the status of this order is equal to OrderStatus#WITHDRAWN, false otherwise

2voto

Jack Points 628

Tant qu'il est importé, vous pouvez le lier (mais quand vous faites cela, IMO, cela rend les importations désordonnées - quelles sont celles qui sont utilisées dans le code et celles qui sont dans la javadoc ? Je préfère simplement utiliser le nom pleinement qualifié).

Mais oui, Eclipse peut s'occuper de tout cela et la norme

{@link Planet#EARTH}

fonctionne bien.

Si vous utilisez Eclipse, les touches Ctrl + Shift + O (sur PC) ou Cmd + Shift + O (sur Mac) permettent d'ajuster automatiquement vos importations (ce qui signifie que si vous avez des importations supplémentaires non utilisées, elles sont supprimées, et que vous ajoutez toutes les importations dont vous avez besoin).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X