作业帮 > 综合 > 作业

java.lang.IndexOutOfBoundsException:求大侠帮忙,

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/11 18:53:06
java.lang.IndexOutOfBoundsException:求大侠帮忙,
java.lang.IndexOutOfBoundsException:Index:0,Size:0
\x05at java.util.ArrayList.RangeCheck(ArrayList.java:547)
\x05at java.util.ArrayList.get(ArrayList.java:322)
\x05at com.cader.dao.hibernate.SetReciptDAOImpC.listName(SetReciptDAOImpC.java:96)
\x05at com.cader.business.service.SetReciptServiceImpC.findAll(SetReciptServiceImpC.java:87)
\x05at com.cader.web.action.AjaxSetReciptActionC.execute(AjaxSetReciptActionC.java:125)
代码如下:public TEmployee listName(String empNo) {
\x05\x05String hql = "from TEmployee te where te.empNo=?";
\x05\x05TEmployee employee = null;
\x05\x05try {
\x05\x05\x05List list = this.getHibernateTemplate().find(hql,empNo);
\x05\x05\x05employee = (TEmployee) list.get(0);
\x05\x05} catch (DataAccessException e) {
\x05\x05\x05e.printStackTrace();
\x05\x05\x05return null;
\x05\x05}
\x05\x05return employee;
\x05}
代码如下:
\x05public List findAll() {
\x05\x05// TODO Auto-generated method stub
\x05\x05List list = this.getSetReciptDAOC().findAll();
\x05\x05TCasherNoRec tempNo = new TCasherNoRec();
\x05\x05List list1 = new ArrayList();
\x05\x05if (list = null && list.size() > 0) {
\x05\x05\x05for (int i = 0; i < list.size(); i++) {
\x05\x05\x05\x05tempNo = (TCasherNoRec) list.get(i);
\x05\x05\x05\x05TEmployee tEmployee = this.setReciptDAOC.listName(tempNo
\x05\x05\x05\x05\x05\x05.getEmpNo());
\x05\x05\x05\x05tempNo.setName(tEmployee.getName());
\x05\x05\x05\x05list1.add(tempNo);
\x05\x05\x05\x05
\x05\x05\x05}
\x05\x05}
\x05\x05return list1;
\x05}
代码如下:
\x05\x05if (flag.equals("2")) {
\x05\x05\x05List list = this.getSetReciptServiceC().findAll();// 查询所有职工姓名
\x05\x05\x05if (list!= null) {
\x05\x05\x05\x05for (int i = 0; i < list.size(); i++) {
\x05\x05\x05\x05\x05TCasherNoRec empNo = (TCasherNoRec) list.get(i);
\x05\x05\x05\x05\x05out.println("");
\x05\x05\x05\x05\x05out.println("" + empNo.getName() + "");
\x05\x05\x05\x05\x05out.println("" + empNo.getEmpNo() + "");
\x05\x05\x05\x05\x05out.println("");
\x05\x05\x05\x05}
\x05\x05\x05}
\x05\x05}
java.lang.IndexOutOfBoundsException:求大侠帮忙,
List list = this.getHibernateTemplate().find(hql, empNo);
if(list != null && list.size() > 0) {
employee = (TEmployee) list.get(0);
}else{
employee = null;
}
或:
try {
List list = this.getHibernateTemplate().find(hql, empNo);
employee = (TEmployee) list.get(0);
} catch (Exception e) {
e.printStackTrace();
return null;
}
再问: public TEmployee listName(String empNo) { String hql = "from TEmployee te where te.empNo=?"; TEmployee employee = null; try { List list = this.getHibernateTemplate().find(hql, empNo); employee = (TEmployee) list.get(0); } catch (DataAccessException e) { e.printStackTrace(); return null; } return employee; } 还是不行,
再答: 你看清我的回答了吗?我把异常类型DataAccessException 改为了 Exception!!!!!你的错误主要是 list 为null 或者得到size为0的列表时,还去取第一个对象,导致IndexOutOfBoundsException异常。所以要针对list为null或size为零的情况作出处理!程序员要有一颗缜密的心,我给的答案你都没有看清就妄下评论,我作为你的前辈,理应给你忠告!