Verknüpfen mit einer externen URL in Javadoc?

768

Etwas wie:

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

Antworten:

1224

Dadurch wird eine Überschrift "Siehe auch" erstellt, die den Link enthält, dh:

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

wird gerendert als:

Siehe auch:
           http://google.com

in der Erwägung, dass dies:

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

erstellt einen Inline-Link:

Siehe http://google.com

aem999
quelle
59
Wenn jemand interessiert ist, da ich es nur nachschlagen musste: Gemäß der Javadoc-Spezifikation kommt das @seeTag nach den @param/ @return-Tags und vor den @since/ @serial/ @deprecated-Tags.
Friederbluemle
7
Nur für den Fall, dass Intellij 13 dieses Tag nicht unterstützt. Es unterstützt Inline-Links. Ist das Tag irgendwie veraltet?
Timo
24
Ich empfehle <a href="http://google.com" target="_top">http://google.com</a>. Der Grund für das Hinzufügen von target = "_ top" liegt darin, dass einige der generierten Javadoc-HTML-Dateien Frames verwenden und Sie wahrscheinlich möchten, dass die Navigation die gesamte Seite und nicht nur den aktuellen Frame betrifft.
Antony
3
Wenn Sie eine Warnung wie "Warnung - Tag \ @see: fehlendes final '>':" erhalten, stellen Sie sicher, dass Sie nicht zwei Hyperlinks in derselben \ @see-Direktive haben. Verwenden Sie stattdessen einen Link pro \ @see.
Travis Spencer
7
Warum ist es so kompliziert, einem Javadoc einen URL-Link hinzuzufügen? wer dachte, dass HTML eine gute Idee war ... / facepalm
Jemand irgendwo
189

Entnommen aus der Javadoc-Spezifikation

@see <a href="URL#value">label</a>: Fügt einen Link hinzu, wie durch definiert URL#value. Das URL#valueist eine relative oder absolute URL. Das Javadoc-Tool unterscheidet dies von anderen Fällen, indem es <als erstes Zeichen nach einem Symbol ( ) sucht, das kleiner als ist .

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

Aaron
quelle
Seltsam; Ich schwöre, ich habe nur die Backticks hinzugefügt; Ich weiß nicht, wohin das Beispiel ging ...
Stobor
Ich denke, wir hatten ein Problem mit der gleichzeitigen Bearbeitung. Ich habe sie auch reingelegt.
Aaron
Meinetwegen. Sie vermissen jedoch die Backticks in der ersten Zeile Ihres Blockzitats ...
Stobor
27
@see wird nicht benötigt. Die Javadocs können mit HTML-Tags formatiert werden, daher ist nur das "a" -Tag erforderlich.
Gabriel Llamas
5
@ GabrielLlamas Stimmt, aber die ursprüngliche Frage impliziert, wie es verwendet wird. Es ist gut zu wissen , dass es speziell tut Arbeit in einem see-auch - Feld, das ist , wo eine Menge Leute es will.
Ionoclast Brigham
33

Javadocs bieten keine speziellen Tools für externe Links an, daher sollten Sie nur Standard-HTML verwenden:

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

oder

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

Nicht verwenden {@link ...}oder {@linkplain ...}weil diese für Links zu den Javadocs anderer Klassen und Methoden sind.

Orlando DFree
quelle
16

Verwenden Sie einfach einen HTML-Link mit einem a-Element wie

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

Dr. Max Völkel
quelle
Veröffentlichen Sie einfach die richtige Antwort erneut, wie aus den anderen Kommentaren hervorgeht. Dies wäre schneller zu lesen als der gesamte Thread.
Dr. Max Völkel
4

Es ist schwer, eine klare Antwort von der Oracle-Site zu finden. Folgendes ist von 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
quelle
Welche Bedeutung hat es, das <a>HTML-Tag mit dem zu versehen {@link ...}?
Patrick M
2
Dies ist wahrscheinlich ein Fehler, da in der Javadoc-Dokumentation dieses Formular nicht erwähnt wird, da es keinen Unterschied zu einem Raw macht <a>.
Didier L
4
Der {@link xxx} hier ist nicht richtig. {@link xxx} dient zum Verknüpfen mit anderen Klassen und Methoden in Ihrem Quellcode. Es ist hier unnötig. Der Rest ist in Ordnung.
MiguelMunoz
4
Dieses Konstrukt ist nach Java 8-Standards nicht zulässig (doclint on).
Stepan Vavra
1
Das ist einfach falsch. Die korrekte Verwendung gemäß Referenz und Dokumentation ist{@link package.class#member label}
Dinei