Java的ArrayList的迭代有一个ClassCastException [英] java arraylist iteration having a ClassCastException
问题描述
我的模型类:
公共类的RecordSet {
私人DATERANGE日期范围;
私人法师;
公共DATERANGE getDaterange(){
返回日期范围;
}
公共无效setDaterange(日期范围日期范围){
this.daterange =日期范围;
}
众高手getMaster(){
返回主;
}
公共无效setMaster(法师){
this.master =主;
}
}
公共类DATERANGE {
私人日期ddate; 公开日期getDdate(){
返回ddate;
} 公共无效setDdate(日期ddate){
this.ddate = ddate;
}}公共类硕士{ 私人字符串EMP code;
私人字符串empname;
私人部门的字符串;
公共字符串getEmp code(){
返回EMP code;
}
公共无效setEmp code(字符串EMP code){
this.emp code = EMP code;
}
公共字符串getEmpname(){
返回empname;
}
公共无效setEmpname(字符串empname){
this.empname = empname;
}
公共字符串getDept(){
返回部门;
}
公共无效setDept(字符串DEPT){
this.dept =部门;
}}
我有这样的说法
列表<&RecordSet的GT;名单=(列表<&RecordSet的GT;)query.list();
在上面的语句获取的执行,我gettind列表对象和每个对象包含两个项目(主,日期范围)?
可以在任何一个我怎样才能得到这两个模型类对象
我做过尝试,但面对classcast异常:
列表<&RecordSet的GT;名单=(列表<&RecordSet的GT;)query.list();
的for(int i = 0; I<则为list.size();我++){
对象组= list.get(ⅰ);
主masetr =(主)集; 的System.out.println(masetr);
}
感谢
您无法施展他们,如果他们不realted。
类你投对象,你投它必须通过继承相关的类;也就是说,你可以施放对象只对其类的子或超-没有任何随机类的一个实例。
边注
:在类层次结构向下铸造是自动的,但铸造向上不是
I have model class:
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;
}
}
I have a statement like this
List<RecordSet> list = (List<RecordSet>) query.list();
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
I've tried but facing classcast exception:
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);
}
thanks
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.
这篇关于Java的ArrayList的迭代有一个ClassCastException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!