Link do zewnętrznego adresu URL w Javadoc?

Odpowiedzi:

1223

Spowoduje to utworzenie nagłówka „Zobacz także” zawierającego link, tj .:

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

będzie renderowane jako:

Zobacz także:
           http://google.com

mając na uwadze, że:

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

utworzy link w linii:

Zobacz http://google.com

aem999
źródło
59
Jeśli ktoś jest zainteresowany, ponieważ po prostu musiałem to sprawdzić: Zgodnie z Javadoc Spec@see tag przychodzi po w @param/ @returntagów i zanim się @since/ @serial/ @deprecatedtagami.
friederbluemle
7
Na wszelki wypadek Intellij 13 nie obsługuje tego tagu. Obsługuje łącza liniowe. Czy tag jest przestarzały?
Timo
24
Polecam <a href="http://google.com" target="_top">http://google.com</a>. Powodem dodania target = "_ top" jest to, że niektóre z wygenerowanych plików HTML javadoc korzystają z ramek i prawdopodobnie chcesz, aby nawigacja wpływała na całą stronę, a nie tylko na bieżącą ramkę.
Antony
3
Jeśli pojawi się ostrzeżenie w rodzaju „ostrzeżenie - Tag \ @ patrz: brak końcowego”> „:”, upewnij się, że nie masz dwóch hiperłączy w tej samej dyrektywie \ @ patrz. Zamiast tego użyj jednego linku na \ @ patrz.
Travis Spencer,
7
dlaczego dodawanie linku URL do javadoc jest tak skomplikowane? kto uważał, że HTML to dobry pomysł ... / facepalm
Someone Somewhere
189

Zaczerpnięte ze specyfikacji javadoc

@see <a href="URL#value">label</a>: Dodaje link zgodnie z definicją URL#value. URL#valueWzględny lub bezwzględny adres URL. Narzędzie Javadoc odróżnia to od innych przypadków, szukając mniej niż symbolu ( <) jako pierwszego znaku.

Na przykład : @see <a href="http://www.google.com">Google</a>

Aaron
źródło
Dziwne; Przysięgam, że dodałem tylko backticks; Nie wiem, dokąd poszedł przykład ...
Stobor
Wydaje mi się, że mieliśmy równoległy problem z edycją. Włożyłem je również.
Aaron
Słusznie. Brakuje ci jednak zwrotów w pierwszym wierszu swojego
cytatu blokowego
27
@ patrz nie jest potrzebne. Jawadoki można sformatować za pomocą znaczników HTML, więc konieczne jest tylko użycie znacznika „a”.
Gabriel Llamas
5
@GabrielLlamas To prawda, ale oryginalne pytanie sugeruje, że właśnie w ten sposób się go używa. To warto wiedzieć, że specjalnie robi pracę w See-także pola, czyli tam, gdzie dużo ludzi będzie go chciał.
Ionoclast Brigham
33

Javadocs nie oferuje żadnych specjalnych narzędzi do zewnętrznych linków, więc powinieneś po prostu użyć standardowego HTML:

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

lub

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

Nie używaj {@link ...} lub {@linkplain ...}ponieważ są to linki do javadoców innych klas i metod.

Orlando DFree
źródło
16

Wystarczy użyć linku HTML z takim elementem jak

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

Dr. Max Völkel
źródło
Właśnie opublikowałem poprawną odpowiedź, która pojawiła się na podstawie innych komentarzy. Byłoby to szybsze do odczytania niż cały wątek.
Dr Max Völkel,
4

Trudno znaleźć jasną odpowiedź ze strony Oracle. Poniższe pochodzi z 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
źródło
Jakie znaczenie ma zawijanie <a>tagu html {@link ...}?
Patrick M
2
Jest to prawdopodobnie błąd, ponieważ dokumentacja javadoc nie wspomina o tej formie, ponieważ nie robi różnicy od surowego <a>.
Didier L,
4
{@Link xxx} tutaj jest niewłaściwy. {@link xxx} służy do tworzenia linków do innych klas i metod w kodzie źródłowym. Tutaj nie jest to konieczne. Reszta jest w porządku.
MiguelMunoz
4
Ta konstrukcja nie jest dozwolona przez standardy Java 8 (doclint on).
Stepan Vavra
1
To jest po prostu źle. Prawidłowe wykorzystanie zgodnie odniesienia i dokumentacji jest{@link package.class#member label}
Dinei