具有 ClassCastException 的 java arraylist 迭代 [英] java arraylist iteration having a ClassCastException

查看:32
本文介绍了具有 ClassCastException 的 java arraylist 迭代的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有模型类:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆