当前位置: 代码迷 >> Java Web开发 >> [Ljava.lang.Object; cannot be cast to 。异常,为啥能取值不能get
  详细解决方案

[Ljava.lang.Object; cannot be cast to 。异常,为啥能取值不能get

热度:854   发布时间:2016-04-17 10:08:20.0
[Ljava.lang.Object; cannot be cast to 。。。错误,为啥能取值不能get?
_list取到值了,但是取出来一直有问题,一get就跳转异常,快疯了,是三张表的联合查询


Java code
//servicepublic List<Evaluatescholarship> find(String year,String major,Timestamp startTime,Timestamp endTime)throws BusinessException{        StringBuffer queryStringBuffer = new StringBuffer("from Evaluatescholarship e,Stubasicinfo s,Majorinfo m where e.stubasicinfo = s.stbStuNo and s.majorinfo = m.mno");                System.out.println("servicebefore");        String[] params = new String[] {year, major};         if(!"".equals(year)){            queryStringBuffer.append(" and s.syear = ? ");//            queryStringBuffer.append(" syear="+"'"+year+"'");            if (!"".equals(major)) {                //queryStringBuffer.append(" and e.stubasicinfo.majorinfo.mname = ? ");                queryStringBuffer.append(" and m.mname = ? ");//                queryStringBuffer.append(" and majorinfo.mname="+"'"+major+"'");//                        +" and estartTime between "+"'"+startTime+"'"+" and "+"'"+endTime+"'"+" and eendTime between "+"'"+startTime+"'"+" and "+"'"+endTime+"'"+" ");                    }            else {//                queryStringBuffer.append(" and estartTime between "+"'"+startTime+"'"+" and "+"'"+endTime+"'"+" and eendTime between "+"'"+startTime+"'"+" and "+"'"+endTime+"'"+" ");            }                    }        else {//            queryStringBuffer.append(" estartTime between "+"'"+startTime+"'"+" and "+"'"+endTime+"'"+" and eendTime between "+"'"+startTime+"'"+" and "+"'"+endTime+"'"+" ");        }        System.out.println(queryStringBuffer);        List<Evaluatescholarship> _list =  this.evaluateScholarshipDao.find(queryStringBuffer.toString(), params);        if(null == _list) {            throw new BusinessException("无法取到值");        }         return _list;    }


Java code
//daopublic List<Evaluatescholarship> find(String queryString, String[] params){        System.out.println("daobefore");        List list = this.dataAccessUtil.find(queryString,params);        System.out.println(list.isEmpty());        return (List<Evaluatescholarship>)list;    }


Java code
//actionpublic String findList() throws Exception{        String currentTime = TimeGenerator.getCurrentTime();        try {            /*System.out.println("actionbefore"+evaluatescholarship.getStubasicinfo().getSyear().toString());                        System.out.println(evaluatescholarship.getStubasicinfo().getMajorinfo().getMname().toString());*/            List<Evaluatescholarship> _list = this.evaluateScholarshipService.find(evaluatescholarship.getStubasicinfo().getSyear(),evaluatescholarship.getStubasicinfo().getMajorinfo().getMname(),startTime,endTime);            System.out.println("evaluateScholarAction size="+_list.size());            if (null == _list) {                return "input";            } else {                                        System.out.println("action getEno = "+(((Evaluatescholarship)(_list.get(0))).getEno().toString()));//一执行到这句就异常,明明list值取出来了的                logger.info(currentTime + " 用户【" + _list + "】登录:");                ActionContext.getContext().put("esList", _list);                            return "success";            }        } catch (Exception e) {//            logger.info(" ******************** Method: [execute] ******************** " + //                    "throw an exception,the reason may be username or password is wrong!");            e.printStackTrace();            return "input";        }
  相关解决方案