关于GenericDAOImp<T, PK extends Serializable>调用问题
例子:public interface GenericDao<T extends Serializable, PK extends Serializable>
public class GenericDAOImpl<T extends Serializable, PK extends Serializable>
extends HibernateDaoSupport implements GenericDao<T, PK>
1.service中直接使用
GenericDAOImpl<User, Integer> userDAO = new GenericDAOImpl<User, Integer>(sessionFactory, User.class);
2.继承出子DAO
interface IUserDAO extends GenericDAO<User, Integer>
class UserDAOImpl extends GenericDAOImpl<User, Integer> implements IUserDAO
作为底层的service,DAO我不确定<User, Integer>,这两个参数,有可能是其他的对象,比如<News, Long><Shop, Integer>等,我该如何灵活继承调用?谢谢! --------------------编程问答-------------------- --------------------编程问答-------------------- 假如是class UserDAOImpl extends GenericDAOImpl<User, Integer>的情况,在GenericDAOImpl中间添加如下代码,可以动态获取<User, Integer>
// UserDAOImpl类型--------------------编程问答-------------------- 以上代码只限于继承 --------------------编程问答-------------------- 兄弟,我不太明白呀,请解释一下... --------------------编程问答-------------------- 你现在的base class,不知道<T extends Serializable, PK extends Serializable>的实际类型,以上代码就是告诉你实际类型怎么取。 --------------------编程问答-------------------- 请问有相关的教程吗?或者搜什么关键词,确实不太明白... --------------------编程问答-------------------- 算我白说了,你连你需要什么也不知道。 --------------------编程问答-------------------- --------------------编程问答-------------------- 你没看懂我的意思,不是动态获取User实例,是动态使用这个DAO,现在是写死的<User, Integer>,要每个实例都写一个DAO,太麻烦了。
Class<?> clazz = getClass();
// UserDAOImpl中的泛型参数
Class<? extends Serializable> infoType = (Class<? extends Serializable>) ((ParameterizedType) clazz
.getGenericSuperclass()).getActualTypeArguments()[0];
Class<? extends Serializable> pkType = (Class<? extends Serializable>) ((ParameterizedType) clazz
.getGenericSuperclass()).getActualTypeArguments()[1];
补充:Java , Web 开发