Я хочу определить интерфейс MyList, который представляет собой список интерфейса MyThing. Частью семантики MyList является то, что его операции не имеют никакого значения для объектов, которые не реализуют интерфейс MyThing.
Это правильная декларация?
interface MyList<E extends MyThing> extends List<E> { ... }
edit: (part 2) Теперь у меня есть другой интерфейс, который возвращает MyList в качестве одного из методов.
// 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?
}