觉得有些奇怪,直接把你代码的上两行放开,不就是你要的结果吗???? public static void main(String[] args) { Test<TT> test = new Test<TT>(TT.class); System.out.println(test.getEntityClass()); //Test<TT> test = new Test<TT>(); // System.out.println(test.getEntityClass()); }
public class Test<T> extends ParameterizedType试试看
这是由于java1.5的erasure特性导致的,换成这样写就对了: Test<TT> test = new Test<TT>(){};
会出现类型转换异常,说是要实现一个接口,试过之后还是不行。
public static void main(String[] args)
{
Test<TT> test = new Test<TT>(TT.class);
System.out.println(test.getEntityClass()); //Test<TT> test = new Test<TT>();
// System.out.println(test.getEntityClass());
}
Test<TT> test = new Test<TT>(){};
既然你已经知道了该类为什么就不能作为参数传递呢?//也就是你的Test<TT>这个TT哪里的?
class HibernateEntityDao<T> extends HibernateGenericDao implements EntityDao<T>对于SSH框架范型DAO的应用,不要将范型类HibernateEntityDao<T>注入,换成继承的方式。配置:
在Spring配置HibernateEntityDao对应的bean时,将范围设置成prototype。
<bean id="entityDao" class="com.zzt.framework.dao.HibernateEntityDao" scope="prototype" parent="hibernateTemplate" /><bean id="xxxDao" class="com.zzt.xxx.xx.XxxDAO" parent="entityDao" />该范型DAO可以被实体类DAO或实体Service继承。
估计很难懂,其实就是 SpringSide 的应用。父类<范型> 引用 一个继承了已经范型好的父类的子类才可以得到呵呵