具有 ClassCastException 的 java arraylist 迭代 [英] java arraylist iteration having a ClassCastException
问题描述
我有模型类:
public class RecordSet {
private DateRange daterange;
private Master master;
public DateRange getDaterange() {
return daterange;
}
public void setDaterange(DateRange daterange) {
this.daterange = daterange;
}
public Master getMaster() {
return master;
}
public void setMaster(Master master) {
this.master = master;
}
}
public class DateRange {
private Date ddate;
public Date getDdate() {
return ddate;
}
public void setDdate(Date ddate) {
this.ddate = ddate;
}
}
public class Master {
private String empcode;
private String empname;
private String dept;
public String getEmpcode() {
return empcode;
}
public void setEmpcode(String empcode) {
this.empcode = empcode;
}
public String getEmpname() {
return empname;
}
public void setEmpname(String empname) {
this.empname = empname;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
}
我有这样的声明
List<RecordSet> list = (List<RecordSet>) query.list();
当上面的语句 get 被执行时,我得到了列表 Objects 并且每个对象都包含两个项目(Master,DateRange)?
when the above statement get's executed I'm gettind the list Objects and Each object holds two items(Master,DateRange)?
任何人都可以如何获得这两个模型类对象
Could any one How can I get those two model class objects
我尝试过,但遇到 classcast 异常:
List<RecordSet> list = (List<RecordSet>) query.list();
for(int i=0;i<list.size(); i++){
Object set=list.get(i);
Master masetr=(Master)set;
System.out.println(masetr);
}
谢谢
推荐答案
You can't cast them if they are not realted .
您正在转换的对象的类和您将其转换到的类必须通过继承相关;也就是说,您只能将对象转换为其类的子类或超类的实例,而不能转换为任何随机类.
The class of the object you're casting and the class you're casting it to must be related by inheritance; that is, you can cast an object only to an instance of its class's sub- or superclass-not to any random class.
旁注
:在类层次结构中向下转换是自动的,但向上转换不是.
Side note
: Casting downward in the class hierarchy is automatic, but casting upward is not.
这篇关于具有 ClassCastException 的 java arraylist 迭代的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!