java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType这个异常怎么解决 谁能帮我一下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType这个异常怎么解决 谁能帮我一下相关的知识,希望对你有一定的参考价值。
import 。。。
public class addminBlogHibernatebak<T,PK extends Serializable> implements AdminBlogDao<T, PK>
private Class<T> clazz;
public addminBlogHibernatebak()
clazz=(Class<T>)((ParameterizedType)getClass ().g etGenericSuperclas()).getActualTypeArguments()[0];
public void delete(T entity)
Session session=HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.delete(entity);
public void update(T entity)
Session session=HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.update(entity);
问题出在构造方法上 每次运行程序时就出现上面的异常.谢谢大家啊 都是热心人
我感觉是泛型我使用的方法不对 希望大家能在这方面帮小弟一下
构造方法写得没错,是泛型用错了,有两种解决方案。
1、再写一个子类继承这个类,子类可以没有任何属性和方法,但必须指明泛型类型,然后使用子类创建对象。
2、写一个含有Class<T>类型的构造方法,在使用该类创建对象时给出具体类型。
软件包 java.lang.reflect 的描述。
提供类和接口,以获取关于类和对象的反射信息。在安全限制内,反射允许编程访问关于加载类的字段、方法和构造方法的信息,并允许使用反射字段、方法和构造方法对对象上的基本对等项进行操作。
如果必需的ReflectPermission可用,则AccessibleObject允许抑制访问检查。
参考技术A 构造方法写的没错,是泛型用错了,有两种解决方案,1.再写一个子类继承这个类,子类可以没有任何属性和方法,但必须指明泛型类型,然后使用子类创建对象 2.写一个含有Class<T>类型的构造方法,在使用该类创建对象时给出具体类型 参考技术B 有Class A 跟 Class BA跟B没有任何关系
你把A塞给B就抛这个异常了 参考技术C 转换异常了。。。上面说的都有道理!!! 参考技术D 就是说你拿到的是String变量,你把它强制转换成Date型的所以出错
你可以用Format类或者自己分析carno的格式转换成Date类型
比方carno="2001/01/01";
就可以String[] s = carno.split("/");
new Date(Integer.parseInt(s[0]), Integer.parseInt(s[1]), Integer.parseInt(s[2]));之类的处理
以上是关于java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType这个异常怎么解决 谁能帮我一下的主要内容,如果未能解决你的问题,请参考以下文章