java.lang.ClassCastException:java.util.ArrayList不能强制转换为…CrExcessMaster

java.lang.ClassCastException:java.util.ArrayList不能强制转换为…CrExcessMaster,java,hibernate,classcastexception,Java,Hibernate,Classcastexception,我的代码是 private List find(String queryString) { final Query query = getSession().createQuery(queryString.intern()); List resultSet = query.list(); return resultSet; } @SuppressWarnings("rawtypes") public List < CrExcessMaster > getExc

我的代码是

private List find(String queryString) {
    final Query query = getSession().createQuery(queryString.intern());
    List resultSet = query.list();
    return resultSet;
}
@SuppressWarnings("rawtypes")
public List < CrExcessMaster > getExcessesWidget(String primaryCO) {
    List cifList = find("select cem.id.cifNumber from CrEntitymaster cem where cem.primaryCo='" + primaryCO + "'");
    List < CrExcessMaster > temp = null;
    for (int i = 0; i < cifList.size(); i++) {
        log.info("cifList in dao " + cifList);
        if (i == 0) {
            temp = find("from CrExcessMaster where cif='" + cifList.get(i) + "'");
        } else temp.add((CrExcessMaster) find("from CrExcessMaster where cif='" + cifList.get(i) + "'"));
    }
    return temp;
}
完整堆栈跟踪是

java.lang.ClassCastException:java.util.ArrayList不能强制转换为cib.ecm.creditRisk.excessManagement.db.orm.CrExcessMaster 位于cib.ecm.creditRisk.excessManagement.web.uiFormatters.UIBeanFormatter.formatCustomerExcessUiBean(UIBeanFormatter.java:65) 位于cib.ecm.creditRisk.excessManagement.web.services.ExcessManagementUiService.GetExcessSwidget(ExcessManagementUiService.java:52) 位于cib.ecm.creditRisk.excessManagement.web.action.ExcessListActionBean.GetExcessSwidget(ExcessListActionBean.java:105) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源) 位于java.lang.reflect.Method.invoke(未知源) 位于net.sourceforge.stripes.controller.DispatcherHelper$6.intercept(DispatcherHelper.java:442) 位于net.sourceforge.stripes.controller.ExecutionContext.procedure(ExecutionContext.java:158) 位于net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:113) 位于net.sourceforge.stripes.controller.ExecutionContext.procedure(ExecutionContext.java:155) 位于net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:74) 位于net.sourceforge.stripes.controller.DispatcherHelper.invokeEventHandler(DispatcherHelper.java:440) 位于net.sourceforge.stripes.controller.DispatcherServlet.invokeEventHandler(DispatcherServlet.java:285) 位于net.sourceforge.stripes.controller.DispatcherServlet.doPost(DispatcherServlet.java:167) 位于net.sourceforge.stripes.controller.DispatcherServlet.doGet(DispatcherServlet.java:67) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 位于org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221) 位于net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:246) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) 在cib.ecm.creditRisk.excessManagement.web.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:35) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) 位于org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) 位于org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 位于org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 位于org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 位于org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 位于org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) 位于org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 位于org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 位于org.mortbay.jetty.Server.handle(Server.java:326) 位于org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 位于org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 位于org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 位于org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 位于org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 位于org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
在org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

中,问题是这一行:

} else temp.add((CrExcessMaster) find("from CrExcessMaster where cif='" + cifList.get(i) + "'"));

这样,您将向
temp
添加一个
列表
,这将导致以后出现
ClassCastException
。调用
temp.add()
,而不是
temp.addAll()

,问题是这一行:

} else temp.add((CrExcessMaster) find("from CrExcessMaster where cif='" + cifList.get(i) + "'"));

这样,您将向
temp
添加一个
列表
,这将导致以后出现
ClassCastException
。调用
temp.add()
,而不是
temp.addAll()

您确定要将
crexessmaster
List
传递到
formatCustomerExcessUiBean()吗
?为什么要抑制潜在警告?是的……我打印了值,它是CrexEssenster列表类型您确定要将
CrexEssenster
list
传递到
formatCustomerExcessUiBean()
?为什么要抑制潜在警告?是的……我打印了这些值,这是CrexEssenmaster列表中的值type@user2265200不客气。接受&upvote;)@用户2265200不客气。接受&upvote;)
} else temp.add((CrExcessMaster) find("from CrExcessMaster where cif='" + cifList.get(i) + "'"));