1

問題のある行は次のとおりです。

public class InputField<W extends WidgetInterface>
                             extends InputFieldArray<W extends WidgetInterface>

ご覧のとおり、ジェネリック型 ( InputFieldArray) を別のジェネリック型 ( )に拡張しようとしていInputFieldます。ジェネリック型パラメーターWは、どちらの場合も、インターフェイスの実装になるように制限されていWidgetInterfaceます。

これを行うと、コンパイラは>、2 番目の後にが必要であると不平を言いWます。OK、おそらくコンパイラは私がこれを書くことができるほど賢いです:

public class InputField<W extends WidgetInterface> extends InputFieldArray<W>

ただし、これを行うと、コンパイラは 2 番目Wが「範囲外」であると不平を言います。私は何を間違えていますか?

4

2 に答える 2

2

あなたのコメントに基づいて、あなたがすべきことのように見えます:

public class InputField<W extends Component & WidgetInterface>
extends InputFieldArray<W>

コンパイラ エラーは一目瞭然です。とWの上限を指定しないと、 の型引数としての範囲内にありません。ComponentWidgetInterfaceInputFieldArray

最初のスニペットは単なる構文エラーです。宣言時に型パラメーターの境界のみを指定しています。

于 2013-08-15T14:21:30.697 に答える