java.lang.IndexOutOfBoundsException: Index: 0,Size

16 篇文章 0 订阅
7 篇文章 0 订阅

今天写项目时,遇到了一个小问题,myeclipse报了以下的错误信息:java.lang.IndexOutOfBoundsException: Index: 0, Size: 0java.util.ArrayList.RangeCheck(ArrayList.java:547)java.util.ArrayList.get(ArrayList.java:322)cn.jbit.action.UserAction.loginUser(UserAction.java:26)sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)java.lang.reflect.Method.invoke(Method.java:597)com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)从错误消息的“0java.util.ArrayList.RangeCheck(ArrayList.java:547)java.util.ArrayList.get(ArrayList.java:322)”,可以看出,ArrayList.get(0)这里出现越界,因此,可以从检查代码中哪里使用了list对象.get(0)的方法,再从抛出异常的类的限定名cn.jbit.action.UserAction.loginUser(UserAction.java:26)中找到抛出异常的方法,详见如下:

public String loginUser() {
  Users user = (Users) userDao.findByExample(userjsp).get(0);
  if (user != null) {
   ActionContext.getContext().getSession().put("user", user);
   return SUCCESS;
  } else {
   return INPUT;
  }
 }

当时,忽略了登录不成功时,也就没有登录成功的那个对象返回,返回的list集合的长度为0,再用listobject.get(0)时,肯定就会抛出异常!改正后的代码如下,并解决了问题:

public String loginUser(){
  List<Users> userlist =(List<Users>)userDao.findByExample(userjsp);
  if(userlist.size()!=0){
   ActionContext.getContext().getSession().put("user", userlist.get(0));
   return SUCCESS;
  } else{
   return INPUT;
  }
   
 }

希望,对大家有帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值