インタフェースMyThingのリストであるインタフェースMyListを定義します。 MyListのセマンティクスの一部は、その操作がMyThingインターフェイスを実装していないオブジェクトに何の意味も持たないことです。generic interface:特定のもののリスト
これは正しい宣言ですか?
interface MyList<E extends MyThing> extends List<E> { ... }
編集:今、私はその方法の一つとして、マイリストを返す別のインターフェイスを持って(パート2)。
// I'm defining this interface
// it looks like it needs a wildcard or template parameter
interface MyPlace {
MyList getThings();
}
// A sample implementation of this interface
class SpecificPlace<E extends MyThing> implements MyPlace {
MyList<E> getThings();
}
// maybe someone else wants to do the following
// it's a class that is specific to a MyNeatThing which is
// a subclass of MyThing
class SuperNeatoPlace<E extends MyNeatThing> implements MyPlace {
MyList<E> getThings();
// problem?
// this E makes the getThings() signature different, doesn't it?
}
リストは消費者であり、私たちはスーパーを使用するはずでしたか? – willcodejavaforfood
クラス型のパラメータ宣言でsuperを使用することはできません。そのため、答えを把握する手間が省けます。 ;) –
私はあなたが2つの問題を混乱させていると思いますが、わかりません。私はあなたがSomeClassを見たとは思わない。 SomeClass <?が表示されることがあります。その型がメソッドの引数を指定するために使用されるときはsuper Something>。 http://www.ibm.com/developerworks/java/library/j-jtp07018.html –