Lien Javadoc vers la méthode dans une autre classe

Actuellement, je référence des méthodes dans d’autres classes avec cette syntaxe Javadoc:

@see {@link com.my.package.Class#method()} 

Et dans ce que je comprends de la documentation, c’est la bonne façon de procéder. Mais maintenant, à la partie drôle ou frustrant. Lorsque je génère ce javadoc, j’obtiens tout d’abord l’erreur suivante:

 warning - Tag @see:illegal character: "123" in "{@link com.my.package.Class#method()}" warning - Tag @see:illegal character: "64" in "{@link com.my.package.Class#method()}" warning - Tag @see: reference not found: {@link com.my.package.Class#method()} 

Le code HTML généré de ceci est:

 "," com.my.package.Class#method()} "," 

Et bien sûr je n’ai aucun lien. Quelqu’un peut-il me dire ce qui se passe, et des conseils sur la façon de résoudre ce problème?

Selon les tables ASCII, les caractères 123 et 64 pour wold représentent {et @, alors pourquoi ces caractères ne sont-ils pas valides lorsque cette syntaxe est correcte selon la documentation?

Pour la balise Javadoc @see , vous n’avez pas besoin d’utiliser @link ; Javadoc créera un lien pour vous. Essayer

 @see com.my.package.Class#method() 

Voici plus d’infos sur @see .

Outre @see , une manière plus générale de faire référence à une autre classe et éventuellement à la méthode de cette classe est {@link somepackage.SomeClass#someMethod(paramTypes)} . Cela a l’avantage d’être utilisable au milieu d’une description javadoc.

De la documentation javadoc (description du tag @link) :

Cette balise est très similaire à @see – les deux requièrent les mêmes références et acceptent exactement la même syntaxe pour le membre et le label package.class #. La principale différence est que {@link} génère un lien en ligne plutôt que de placer le lien dans la section “Voir aussi”. De plus, la balise {@link} commence et se termine par des accolades pour la séparer du rest du texte en ligne.

La solution au problème initial est que vous n’avez pas besoin des références “@see” et “{@link …}” sur la même ligne. La balise “@link” est autonome et, comme indiqué, vous pouvez la placer n’importe où dans le bloc javadoc. Vous pouvez donc combiner les deux approches:

 /** * some javadoc stuff * {@link com.my.package.Class#method()} * more stuff * @see com.my.package.AnotherClass */