24

ジェネリックスを含むパラメーターを持つメソッドがあります。

public static void readList(List<ModelObject> list)
{
    // more code
}

このメソッドArrayListにofを渡したい。ModelObjectImplementation

ArrayList<ModelObjectImplementation> myList;
myList = ...

readList(myList); // gives compilation error

ModelObjectModelObjectImplementationを実装するインターフェースです。これを許可するようにメソッド宣言を変更するにはどうすればよいですか?

4

1 に答える 1

35

Javaバージョン1.5以降を使用している場合は、ワイルドカードを使用できます。

public static void readList(List<? extends ModelObject> list)

java.util.Listこのソリューションは、のすべてのインターフェイス実装とサブクラス/サブインターフェイスに適合するため、より一般的ですModelObject。詳細については、ワイルドカードチュートリアルにアクセスしてください

于 2012-05-17T21:04:42.330 に答える