java.lang.ClassCastException: java.sql.Timestamp 是什么异常

来源:百度知道 编辑:UC知道 时间:2024/06/30 07:53:39
int i = 0;
selectDatebiz sdz = new selectDatebiz();
List list = sdz.pdDate();
for (i = 0; i < list.size(); i++) {
Userinfo userinfo = new Userinfo();
userinfo = (Userinfo) list.get(i); //出异常
Date date = new Date();
date = userinfo.getDayUtime();
date.getYear();
Calendar c = Calendar.getInstance();
int y = c.get(Calendar.YEAR);
Date date1 = new Date();
date1.setDate(y);
if (date.getTime() != date1.getTime()) {
Votebiz vbz = new Votebiz();
vbz.deleteVote(userinfo);
}

java.lang.ClassCastException:
这是类型转换错误异常,也就是你在使用list.get(i)的时候得到的并
Userinfo类型,而是Timestamp

强烈建议你用泛型 泛型是jdk1.5新加的内容很好的
List<Userinfo> list = new ArrayList<Userinfo>();
很安全 .说明ArrayList中只能存放Userinfo类的实例
Userinfo userinfo = list.get(0);
直接取就可以了.不必强制类型转换
userinfo = (Userinfo) list.get(i); //出异常
list中实例无法转换为Userinfo

sdz.pdDate(); 那个list里面的object可能不是Userinfo的子类
你看看是否是你的设计或者运行出了什么问题

你类型转换出问题了,贴代码出来看看。。

pdDate()理由问题..对于这样的问题,一般是你加入了非Userinfo的类型..建议你使用java1.5 generic的写法,避免cast的错误..

List<Userinfo> pdDate()
List<? extends Userinfo> pdDate()

f1