Reputation: 86847
Could someone tell me the difference between javadoc @see
and {@link}
?
Or rather, when to use which of them?
Upvotes: 213
Views: 122453
Reputation: 2128
The @see
tag is a bit different than the @link
tag,
limited in some ways and more flexible in others:
@see
items, commas in the description make the output confusingSee the results below:
JavaDoc generation results with different link types
Best regards.
Upvotes: 14
Reputation: 58812
There's another reference (deprecation section) same official docs to prefer {@link}
over @see
(since Java 1.2):
For Javadoc 1.2 and later, the standard format is to use @deprecated tag and the in-line {@link} tag. This creates the link in-line, where you want it. For example:
For Javadoc 1.1, the standard format is to create a pair of @deprecated and @see tags. For example:
Upvotes: 5
Reputation: 13063
The official guidelines on this are pretty clear.
The functional differences are:
{@link}
is an inline link and can be placed wherever you like@see
creates its own sectionIn my opinion, {@link}
is best used when you literally use a class, field, constructor or method name in your description. The user will be able to click through to the javadoc of what you've linked.
I use the @see
annotation in 2 cases:
I based this opinion on randomly checking out documentation for a great variety of things in the standard library.
Upvotes: 241
Reputation: 160261
@see
creates an isolated line in the Javadocs. {@link}
is for embedding within text.
I use @see
when it's a related entity but I don't refer to it in the expository text. I use links within text when there's tight coupling, or (I feel) it's likely the reader would benefit from the navigation hint, e.g., you'll need to reference it directly.
Upvotes: 55