對於泛型服務dao層,我有一個genericService支持類(genericService,GenericServiceImpl,GenericDao,GenericHibernateDao)。從另一個擴展參數化泛型類擴展類
Normaly它工作得很好,當我從擴展抽象通用services.When任何類型的參數化的服務,我延長不同的服務這個擴展服務它給:
造成的:java.lang.ClassCastException:java.lang中。 Class不能轉換爲java.lang.reflect.ParameterizedType
錯誤。
我GEnericHibernateDao:
@Transactional 公共抽象類GenericHibernateDaoSupport擴展的HibernateDaoSupport實現GenericDaoTemplate { 私有類類型;
public GenericHibernateDaoSupport() {
this.type = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
@Autowired
@Qualifier(value = "productSessionFactory")
public void bindSessionFactory(SessionFactory sessionFactory)
{
setSessionFactory(sessionFactory);
}
public Class<T> getType() {
return type;
}
public void setType(Class<T> type) {
this.type = type;
}
protected Session getCurrentSession() {
return getHibernateTemplate().getSessionFactory().getCurrentSession();
}
public ID persist(T newInstance) {
return (ID) getHibernateTemplate().save(newInstance);
}
public void update(T transientObject) {
getHibernateTemplate().update(transientObject);
}
這裏是我的非標準擴展的HibernateDAO類:
@Repository
public class StandadHibernateDao extends standardHibernateDaoSupport<Standard, Long> implements StandardDao {
上方延伸的操作工作正常,但是當我試圖像這樣:
@Repository
public class ExtendStandardGatewayHibernateDao extends StandadHibernateDao implements ExtendedStandardDao {
它拋出:
導致:java.lang.ClassCastException:java.lang.Class不能轉換爲java.lang.reflect.Paramete rizedType。
你有什麼想法嗎?
有什麼想法嗎? – erhan
http://stackoverflow.com/questions/11067512/java-lang-class-cannot-be-cast-to-java-lang-reflect-parameterizedtype此鏈接可能有助於 –