当前位置:编程学习 > JAVA >>

关于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类型
    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];
--------------------编程问答-------------------- 以上代码只限于继承 --------------------编程问答-------------------- 兄弟,我不太明白呀,请解释一下... --------------------编程问答-------------------- 你现在的base class,不知道<T extends Serializable, PK extends Serializable>的实际类型,以上代码就是告诉你实际类型怎么取。 --------------------编程问答-------------------- 请问有相关的教程吗?或者搜什么关键词,确实不太明白... --------------------编程问答-------------------- 算我白说了,你连你需要什么也不知道。 --------------------编程问答-------------------- --------------------编程问答-------------------- 你没看懂我的意思,不是动态获取User实例,是动态使用这个DAO,现在是写死的<User, Integer>,要每个实例都写一个DAO,太麻烦了。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,