java.lang.ClassCastException:[Ljava.lang.Object;无法转换为 com.inrev.segmentation.bean.IRUserSegment

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.inrev.segmentation.bean.IRUserSegment

您好,我有一个 ArrayList 泛型类型是 Bean class 类型。当我尝试从 ArrayList 获取数据时出现异常。

代码如下:

ArrayList<IRUserSegment> segments = (ArrayList<IRUserSegment>) userSegmentDAO.getDateWiseCount(org.getOrgId());
System.out.println("List size"+segments.size());
//  IRUserSegment itr=segments.get(1);//getting Iterator from arraylist to traverse elements  
for (int i = 0; i < segments.size(); i++) {
    IRUserSegment value = segments.get(i);
    System.out.println("Element: " + value.getCount());
}

DAO 代码 public 列表 getDateWiseCount(Integer orgId) {

        IRUserSegment usersegment = null;

        try
        {

            q.append("SELECT count(*) as cnt, date(updatedOn) as updatedOnDate FROM t_user_segment WHERE updatedOn >= DATE_SUB(CURRENT_DATE, INTERVAL 15 DAY) group by updatedOnDate;");
            SQLQuery query = session.createSQLQuery(q.toString());
             segmentList = (List<IRUserSegment>) query.list();

            //ArrayList<IRUserSegment> details=(ArrayList<IRUserSegment>) 
            if (segmentList != null && segmentList.size() > 0)
            {
                List<Object[]> result = query.list();

                for (Object[] object : result)
                {
                    System.out.println("Count"+object[0].toString()+"date"+object[1].toString());
                }

                return segmentList;
            }

        }

        catch (Exception e)
        {
            log.error("", e);
        }
        return segmentList;

    }

试试这样使用。

List segments = userSegmentDAO.getDateWiseCount(org.getOrgId());
System.out.println("List size"+segments.size());
//  IRUserSegment itr=segments.get(1);//getting Iterator from arraylist to traverse elements  
for (int i = 0; i < segments.size(); i++) {
    IRUserSegment value = (IRUserSegment)segments.get(i);
    System.out.println("Element: " + value.getCount());
}

或者您将方法修改为

public List<IRUserSegment> getDateWiseCount(Integer orgId) {}

而不是

public List getDateWiseCount(Integer orgId) {}