gpt4 book ai didi

java 类强制转换异常错误

转载 作者:行者123 更新时间:2023-12-01 19:10:20 25 4
gpt4 key购买 nike

我正在使用 struts、hibernate 和 jsp 开发我的网站。我从我的操作页面调用了 DAO 页面中的一个函数,如下所示:

private List<Order> salesDetails = new ArrayList();
salesDetails = doctorDao.getInstance().getDoctorSalesDetails(SessionObj.getId(),activityGraph);

在我的 dao 函数中我编写这样的代码

public List getDoctorSalesDetails(int id,int activityGraph){
List<Order> doctorSalesDetails=new ArrayList();
try{
SessionFactory sessionFactory =
(SessionFactory) ServletActionContext.getServletContext().getAttribute(HibernateListener.KEY_NAME);
Session Hibernatesession = sessionFactory.openSession();
Hibernatesession.beginTransaction();
doctorSalesDetails = Hibernatesession.createSQLQuery("SELECT total_amount,created_at FROM `order` WHERE created_at > DATE_SUB(curdate(),INTERVAL "+activityGraph+" DAY) AND doctor_id = "+id+" GROUP BY created_at").list();
Hibernatesession.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
}
return doctorSalesDetails;
}

查询结果在这里成功运行。问题是当我从操作页面访问返回变量时,如下所示:

    try{
for( Order o: salesDetails) {
System.out.println("Total amount="+o.getCreatedAt());
}
}catch(Exception e){
e.printStackTrace();
}

它会导致以下错误:

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.myDrDirect.hbmobj.Order
at com.myDrDirect.doctor.action.DoctorDashBoardActivity.getDashBoardActivityDetails(DoctorDashBoardActivity.java:36)

可能是什么问题?

最佳答案

private List<Order> salesDetails = new ArrayList();

salesDetails = doctorDao.getInstance().getDoctorSalesDetails(SessionObj.getId(),activityGraph);

在上面的语句中 salesDetails 必须接受类型为“Order”的元素。

doctorSalesDetails =    Hibernatesession.createSQLQuery("SELECT total_amount,created_at FROM `order` WHERE created_at > DATE_SUB(curdate(),INTERVAL "+activityGraph+" DAY) AND doctor_id = "+id+" GROUP BY created_at").list();

在上面的行中,doctorSalesDetails 的类型为“Object”,与您返回到 salesDetails 的内容相同。

按照你的说法

预计持有订单的 salesDetails 持有一个对象。

结果,它抛出 ClassCastException 。

关于java 类强制转换异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8636014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com