javadocドキュメントの@linkセクションの一般的な形式は次のとおりです。
例
同じクラスのメソッド:
/** See also {@link #myMethod(String)}. */
void foo() { ... }
同じパッケージまたはインポートされた別のクラスのメソッド:
/** See also {@link MyOtherClass#myMethod(String)}. */
void foo() { ... }
別のパッケージのメソッドで、インポートされていないもの:
/** See also {@link com.mypackage.YetAnotherClass#myMethod(String)}. */
void foo() { ... }
コードフォントではなくプレーンテキストでメソッドにリンクされたラベル:
/** See also this {@linkplain #myMethod(String) implementation}. */
void foo() { ... }
質問のように、一連のメソッド呼び出し。このクラス外のメソッドへのリンクのラベルを指定する必要がありますgetFoo().Foo.getBar().Bar.getBaz()
。そうしないと、を取得します。ただし、これらのラベルは壊れやすい場合があります。以下の「ラベル」を参照してください。
/**
* A convenience method, equivalent to
* {@link #getFoo()}.{@link Foo#getBar() getBar()}.{@link Bar#getBaz() getBaz()}.
* @return baz
*/
public Baz fooBarBaz()
ラベル
自動リファクタリングはラベルに影響しない場合があります。これには、メソッド、クラス、またはパッケージの名前の変更が含まれます。メソッドのシグネチャを変更します。
したがって、デフォルトとは異なるテキストが必要な場合にのみ、ラベルを指定してください。
たとえば、人間の言語からコードにリンクする場合があります。
/** You can also {@linkplain #getFoo() get the current foo}. */
void setFoo( Foo foo ) { ... }
または、上記の「メソッド呼び出しのチェーン」で示したように、デフォルトとは異なるテキストを含むコードサンプルからリンクすることもできます。ただし、APIが進化している間、これは脆弱になる可能性があります。
タイプ消去と#member
メソッドシグネチャにパラメータ化された型が含まれている場合は、javadoc @linkでそれらの型の消去を使用します。例えば:
int bar( Collection<Integer> receiver ) { ... }
/** See also {@link #bar(Collection)}. */
void foo() { ... }