2012-10-02 17 views
6

は、私は2つのクラスを持っていると仮定します。のJavadoc非ジェネリッククラスとジェネリッククラスを拡張するとき

さて、私は(Eclipseを使用して)公共Javadocを生成するとき、私はIntegerA方法の項に以下を参照してください。

public void go(E e) 

問題はそののJavadocの読者はEが何であるかわかりませんということです。すなわちEIntegerを表す。私はむしろJavadocと言うでしょう。

public void go(Integer e) 

Javadocを私の望むように動作させる方法はありますか?

+0

javadocでスーパークラスとは何か?私は自分のマシンでこれを試しましたが、同じ問題が発生しましたが、スーパークラスが 'Object'であると誤って言っていました。 – Dunes

+0

また、スーパークラスは私にとっては 'Object'だと言います。しかし、私は 'GenericA'をパブリックではなく非公開と宣言して以来、私の意見はそれが正しい振る舞いだということです。代わりに 'GenericA'を公開すると宣言すると、Javadocは' IntegerA'のスーパータイプが 'GenericA ' – Blaine

+1

であると言います。 'go(Integer e)'シグネチャには実際のメソッドは存在しません(リフレクションで示されるように)。だからjavadocはたとえコンパイラが主張するものであっても、そのメソッドシグネチャを指定した場合、実行時に主張するものではないにしても、嘘つきになるでしょう...トリッキーな...あなたが必要とする答えがあるのが分かりますしかし、。 – Dunes

答えて

3

私が知っている唯一の方法は、IntegerAでIntegerをオーバーライドしてから、スーパーメソッドを呼び出します。

@Override 
public void go(Integer e) { 
    super.go(e); 
} 
関連する問題