O formato geral, da seção @link da documentação do javadoc , é:
Exemplos
Método na mesma classe:
/** See also {@link #myMethod(String)}. */
void foo() { ... }
Método em um classe diferente, no mesmo pacote ou importado:
/** See also {@link MyOtherClass#myMethod(String)}. */
void foo() { ... }
Método em um pacote diferente e não importado:
/** See also {@link com.mypackage.YetAnotherClass#myMethod(String)}. */
void foo() { ... }
Rótulo vinculado ao método, em texto simples, em vez de fonte de código:
/** See also this {@linkplain #myMethod(String) implementation}. */
void foo() { ... }
Uma cadeia de chamadas de método, como na sua pergunta. Temos que especificar rótulos para os links para métodos fora desta classe, ou obtemos getFoo().Foo.getBar().Bar.getBaz()
. Mas esses rótulos podem ser frágeis; consulte "Etiquetas" abaixo.
/**
* A convenience method, equivalent to
* {@link #getFoo()}.{@link Foo#getBar() getBar()}.{@link Bar#getBaz() getBaz()}.
* @return baz
*/
public Baz fooBarBaz()
Etiquetas
A refatoração automatizada pode não afetar os rótulos. Isso inclui renomear o método, classe ou pacote; e alterando a assinatura do método.
Portanto, forneça um rótulo apenas se desejar um texto diferente do padrão.
Por exemplo, você pode vincular da linguagem humana ao código:
/** You can also {@linkplain #getFoo() get the current foo}. */
void setFoo( Foo foo ) { ... }
Ou você pode vincular a partir de um exemplo de código com texto diferente do padrão, como mostrado acima em "Uma cadeia de chamadas de método". No entanto, isso pode ser frágil enquanto as APIs estão evoluindo.
Digite apagamento e #member
Se a assinatura do método incluir tipos parametrizados, use o apagamento desses tipos no javadoc @link. Por exemplo:
int bar( Collection<Integer> receiver ) { ... }
/** See also {@link #bar(Collection)}. */
void foo() { ... }