Java Generic из другого универсального
У меня есть интерфейс:
interface Identifable<T extends Serializable> {
T getID();
}
и класс, который реализует это:
public class Cat implements Identifable<Long> {
public Long getID(){...};
}
все отлично работает до сих пор. Теперь я хочу создать GenericDAO, почему я не могу создать это ?:
public abstract GenericDAO<T extends Identifable<S>> {
T getByID(S id);
}
Я могу только объявить мой GenericDAO следующим образом:
public abstract GenericDAO<T extends Identifable, S> {
T getById(S id);
}
И полный класс:
public CatDAO extends GenericDAO<Cat, Long> {
Cat getById(Long id);
}
Но я думаю, что это бесполезно, потому что я повторяю информацию. Я уже заявлял, что Cat реализует Identifable <Long>, так почему я должен объявлять GenericDAO <Cat, Long>, а не только GenericDAO <Cat>?