在运行时创建通用DAO接口

时间:2012-10-21 20:38:48

标签: java generics proxy dry

public interface  GenericDAO<T>{
   // some methods
}
public interface PersonGenericDAO extends GenericDAO<Person> {}
public interface TeacherGenericDAO extends GenericDAO<Teacher> {}
public interface StudentGenericDAO extends GenericDAO<Student> {}

我有一个通过这些接口创建代理实例的库,如下所示:

creator.onDemand(PersonGenericDAO.class);

我只是想创建一个静态方法来删除不必要的接口。但我对此一无所知。

public static <X> GenericDAO<X> getGenericDAO(X type){
   // return ?????????? 
}

1 个答案:

答案 0 :(得分:0)

将参数设为Class<X>

public static <X> GenericDAO<X> getGenericDAO(Class<X> type){
   return new HibernateDAO<X>();
}

并将其命名为

GenericDao<Person> personDao = getGenericDAO(Person.class);