Lien vers une URL externe dans Javadoc?

768

Quelque chose comme:

/**
 * See {@linktourl http://google.com}
 */
ripper234
la source

Réponses:

1226

Cela crée un en-tête "Voir aussi" contenant le lien, à savoir:

/**
 * @see <a href="http://google.com">http://google.com</a>
 */

rendra comme:

Voir aussi:
           http://google.com

alors que ceci:

/**
 * See <a href="http://google.com">http://google.com</a>
 */

créera un lien en ligne:

Voir http://google.com

aem999
la source
59
Si quelqu'un est intéressé, car je viens de le rechercher: selon la spécification Javadoc, la @seebalise vient après les balises @param/ @returnet avant les balises @since/ @serial/ @deprecated.
friederbluemle
7
Au cas où, Intellij 13 ne semble pas prendre en charge cette balise. Il prend en charge les liens en ligne. La balise est-elle en quelque sorte obsolète?
Timo
24
Je recommande <a href="http://google.com" target="_top">http://google.com</a>. La raison de l'ajout de target = "_ top" est due au fait que certains des fichiers html javadoc générés utilisent des cadres, et vous voulez probablement que la navigation affecte la page entière plutôt que juste le cadre actuel.
Antony
3
Si vous obtenez un avertissement comme "avertissement - Tag \ @see: final '>':" manquant, assurez-vous que vous n'avez pas deux hyperliens dans la même directive \ @see. Utilisez plutôt un lien par \ @see.
Travis Spencer
7
pourquoi est-il si compliqué d'ajouter un lien URL à un javadoc? qui pensait que le HTML était une bonne idée ... / facepalm
Quelqu'un Quelque part
189

Tiré de la spécification javadoc

@see <a href="URL#value">label</a>: Ajoute un lien tel que défini par URL#value. L' URL#valueURL est une URL relative ou absolue. L'outil Javadoc le distingue des autres cas en recherchant un symbole inférieur à ( <) comme premier caractère.

Par exemple : @see <a href="http://www.google.com">Google</a>

Aaron
la source
Bizarre; Je jure que je n'ai ajouté que les contre-coups; Je ne sais pas où est allé l'exemple ...
Stobor
Je pense que nous avons eu une sorte de problème d'édition simultanée. Je les mettais aussi.
Aaron
C'est suffisant. Vous manquez cependant les backticks dans la première ligne de votre blockquote ....
Stobor
27
@see n'est pas nécessaire. Les javadocs peuvent être formatés avec des balises html, il n'est donc nécessaire que la balise "a".
Gabriel Llamas
5
@GabrielLlamas Vrai, mais la question d'origine implique que c'est ainsi que c'est utilisé. Il est utile de savoir que spécifiquement le fait de travailler dans un domaine aussi voir-qui est où beaucoup de gens vont vouloir.
Ionoclast Brigham
33

Les Javadocs n'offrent aucun outil spécial pour les liens externes, vous devez donc simplement utiliser du HTML standard:

See <a href="http://groversmill.com/">Grover's Mill</a> for a history of the
Martian invasion.

ou

@see <a href="http://groversmill.com/">Grover's Mill</a> for a history of 
the Martian invasion.

N'utilisez pas {@link ...}ou {@linkplain ...}parce que ce sont des liens vers les javadocs d'autres classes et méthodes.

Orlando DFree
la source
16

Utilisez simplement un lien HTML avec un élément a comme

<a href="URL#value">label</a>

Dr. Max Völkel
la source
Je viens de republier la bonne réponse telle qu'elle ressort des autres commentaires. Ce serait plus rapide à lire que le fil entier.
Dr Max Völkel
4

Difficile de trouver une réponse claire sur le site Oracle. Ce qui suit est de javax.ws.rs.core.HttpHeaders.java:

/**
 * See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">HTTP/1.1 documentation</a>}.
 */
public static final String ACCEPT = "Accept";

/**
 * See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2">HTTP/1.1 documentation</a>}.
 */
public static final String ACCEPT_CHARSET = "Accept-Charset";
Qiang Li
la source
Quelle est l'importance d'envelopper la <a>balise html avec le {@link ...}?
Patrick M
2
C'est probablement une erreur car la documentation javadoc ne mentionne pas ce formulaire, car elle ne fait aucune différence par rapport à un raw <a>.
Didier L
4
Le {@link xxx} ici n'est pas correct. {@link xxx} sert à créer des liens vers d'autres classes et méthodes dans votre code source. C'est inutile ici. Le reste est très bien.
MiguelMunoz
4
Cette construction n'est pas autorisée par les normes Java 8 (doclint activé).
Stepan Vavra
1
C'est tout à fait faux. L'utilisation correcte selon la référence et la documentation est{@link package.class#member label}
Dinei