java 类强制转换异常错误

标签 java

我正在使用 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/

相关文章:

java - "preview unavailabe until after a successful project sync"

java - 客户端无法向服务器 Java 套接字发送消息

java - 如何在 Wildfly 中为 LDAP 扩展模块启用调试日志记录

java - 从字节数组序列中读取行

java - SSL_read 第二次失败

java - java中的DynamoDb分页查询

java - 一个 for 循环中有 2 个计数器?

java - 程序编译但不打印结果

java - JAVA 中的 WebSocket SSL

java - 编程到接口(interface) - 避免以后的转换