Comment utiliser @valeur de la balise javadoc?
Je suis en utilisant une classe avec un constructeur privé au lieu d'un enum (c'est une obligation). Et maintenant, je suis en train d'ajouter des balises javadoc pour documenter chaque public static final
entité.
1) Qu'est préférable de placer le javadoc tags: comme ob1
ou ob2
?
2) les Deux options de générer d'erreur dans l'IDÉE
@value tag must reference field with a constant intializer.
/**
* {@value #ob1} object1 description
*/
public class MyClass {
public static final Object ob1 = new Object();
/**
* {@value #ob2} object2 description
*/
public static final Object ob2 = new Object();
private MyClass() {}
}
- Essayez d'utiliser la non-IDÉE spécifique de javadoc. Sauf si c'est en quelque sorte dans la javadoc spec et je n'ai pas entendu parler de lui... Vous pouvez laisser l'ensemble de l' @valeur de la partie.
- Je ne pense pas que c'est l'IDÉE des balises spécifiques.
- est n'a pas d'IDÉE spécifique. Introduit dans la version 1.4, docs.oracle.com/javase/7/docs/technotes/tools/windows/...
- Oui, je sais que @valeur n'est pas d'IDÉE spécifique, cependant je l'ai vu dans la méthode javadocs seulement. Si vous suffit d'entrer la description à côté du terrain, il devrait générer correctement (et espérons-le, sans erreur).
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que Kayaman réponse est suffisante car la question est de savoir comment utiliser le @balise de valeur dans la documentation javadoc.
Je pense que le problème réside dans le fait que la valeur du champ référencé n'est pas une valeur littérale.
Dans eclipse, lorsque vous avez
générés documentation Javadoc sont {@valeur #ob2} objet2 description. Toutefois, lorsque vous avez
générés documentation Javadoc sont "bonjour" objet2 description (le résultat attendu).
Donc, en résumé, vous êtes à l'aide de @balise de valeur correctement dans la javadoc, mais la valeur ne seront rendus correctement si le champ a été initialisé avec une valeur littérale.
@value
références de paramètre doit être une constante (c'est à dire static et final) et d'un type qui a une constante de l'initialiseur. Dans général, cela signifie que les Chaînes et les primitives.@value
à un@link
.@value
sein même de la classe (c'est à dire FQN préfixes avant la#
ne fonctionnera pas)Il ne fait pas beaucoup de sens d'ajouter non-expressions constantes à la Javadoc.
Au premier abord, on pourrait penser que le plus raisonnable problème serait d'ajouter un
toString
à la Javadoc. Mais alors, qu'advient-il si vous aviez un objet mutable comme:et une Javadoc comme:
Ensuite, on pourrait simplement faire plus tard:
ainsi, l'ajout de
0
à la Javadoc ne serait pas beaucoup de sens.Il ne fonctionne que pour les chaînes parce qu'ils sont immuables et les JLS explicitement dit donc: il n'existe aucun moyen pour vous de dire au compilateur que sur une classe personnalisée.