Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 实现类中的ClassCastException_Java_Spring_Hibernate_Classcastexception - Fatal编程技术网

Java 实现类中的ClassCastException

Java 实现类中的ClassCastException,java,spring,hibernate,classcastexception,Java,Spring,Hibernate,Classcastexception,为什么我会得到ClassCastException: 包装异常: java.lang.ClassCastException: com.avt.model.CasePmt at com.avt.dao.impl.CasePmtDaoImpl.findAllCasePmt(CasePmtDaoImpl.java:68) at com.avt.ViewCasePmtAction.view(ViewCasePmtAction.java:127) at sun.reflect.Na

为什么我会得到ClassCastException:

包装异常:

java.lang.ClassCastException: com.avt.model.CasePmt
    at com.avt.dao.impl.CasePmtDaoImpl.findAllCasePmt(CasePmtDaoImpl.java:68)
    at com.avt.ViewCasePmtAction.view(ViewCasePmtAction.java:127)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
    at gov.pbgc.spectrum.util.SpectrumLookupDispatchAction.execute(SpectrumLookupDispatchAction.java:113)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)    
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
我的实现类是

public List<CasePmt> findAllCasePmt() {
            List list;
            list = getHibernateTemplate().executeFind(new HibernateCallback() {
                    public Object doInHibernate(Session session)
                                    throws HibernateException, SQLException {

                            Query q = session
                                            .getNamedQuery("findAll");
                            return q.list();
                    }
            });
            Iterator it = list.iterator();
            List<CasePmt> l = new ArrayList<CasePmt>();

            CasePmt voObj;
            while (it.hasNext()) {
                    voObj = new CasePmt();

                    Object[] objs = (Object[]) it.next();
                    // System.out.print("\n" + objs[0].toString());

                    if (objs[2] != null) {
                            voObj.setCaseTxNum(objs[1].toString());
                    }


    .......................
                        }
                    l.add(voObj);
            }
            return l;
    }
我的行动呼吁是:

List<CasePmt> CsList =       
             CasePmtBo.getCaseDao().findAllCasePmt();
我在第68行得到错误,即Object[]objs=Object[]it.next;线 为什么我会遇到这个问题

有什么意见吗..我今天再次讨论这个问题,面对这个问题

我假设,您的findAll查询是检索所有CasePmt对象。在这种情况下,我认为您在下面的行中遇到了问题:

 Object[] objs = (Object[]) it.next();
因为迭代器将返回CasePmt对象

尝试将其作为打击投射到CasePmt对象:

 CasePmt casePmt = (CasePmt)it.next();
我假设findAll查询是检索所有CasePmt对象。在这种情况下,我认为您在下面的行中遇到了问题:

 Object[] objs = (Object[]) it.next();
因为迭代器将返回CasePmt对象

尝试将其作为打击投射到CasePmt对象:

 CasePmt casePmt = (CasePmt)it.next();
将您的列表分层为

  List<Object[]> list;  
将您的列表分层为

  List<Object[]> list;  

一般来说,当你有一个ClassCastException你不理解,而不是

Object[] objs = (Object[]) it.next();
[...]
试一试


一般来说,当你有一个ClassCastException你不理解,而不是

Object[] objs = (Object[]) it.next();
[...]
试一试


我将其转换为CasePmt,但仍然在同一行中获得相同的异常。@JNPW:您可以共享您的findAll查询吗?它的Select*来自JTL.Case_VWand在entity类中:@entity@namedquerys{@NamedQueryname=findAll,query=来自CasePmt}@JNPW:不确定您的第一个查询,但如果您使用的是FROM CasePmt,那么它必须是CasePmt对象。要进行验证,请更改:Object[]objs=Object[]it.next;to Object objs=it.next;然后将类名打印为System.out.printlnobjs.getClass.getName;我将其转换为CasePmt,但仍然在同一行中获得相同的异常。@JNPW:您可以共享您的findAll查询吗?它的Select*来自JTL.Case_VWand在entity类中:@entity@namedquerys{@NamedQueryname=findAll,query=来自CasePmt}@JNPW:不确定您的第一个查询,但如果您使用的是FROM CasePmt,那么它必须是CasePmt对象。要进行验证,请更改:Object[]objs=Object[]it.next;to Object objs=it.next;然后将类名打印为System.out.printlnobjs.getClass.getName;