У меня есть DAO
объекта, который я обычно продлить с именем класса сущностей, как так:Расширение общего класса реализатора
public class DAO<T> {
private final Class<T> clazz;
public DAO(Class<T> clazz {
this.clazz = clazz;
}
}
public class EntityDAO extends DAO<Entity> {
public EntityDAO() {
super(Entity.class);
}
}
Однако, у меня есть некоторые абстрактные объекты, которые я хотел бы создать абстрактный DAO который получает реализуется в конкретный класс позже:
public class DAO<T> {
private final Class<T> clazz;
public DAO(Class<T> clazz {
this.clazz = clazz;
}
}
public abstract class AbstractEntityDAO extends DAO<T extends AbstractEntity> {
public AbstractEntityDAO() {
super(AbstractEntity.class);
}
}
public abstract class EntityDAO extends AbstractEntityDAO <Entity> {
public EntityDAO() {
super(Entity.class);
}
}
Но это не работает, как AbstractEntityDAO
жалуется неожиданная грань, и она не может решить Т. можно ли это сделать? И если да, то как это написано?
Это использование Java 1.7
Спасибо за это, я знал, что чего-то не хватает! – Draken