提交时数组下标越界

提交时数组下标越界

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	java.util.ArrayList.rangeCheck(ArrayList.java:657)
	java.util.ArrayList.get(ArrayList.java:433)
	com.imooc.oa.biz.impl.ClaimVoucherBizImpl.submit(ClaimVoucherBizImpl.java:125)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:498)
	org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
	org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
	org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
	org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
	com.sun.proxy.$Proxy25.submit(Unknown Source)
	com.imooc.oa.controller.ClaimVoucherController.submit(ClaimVoucherController.java:90)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:498)


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
芝芝兰兰 2019-10-17 14:54:25

同学你好。

这里提示了寻找的下标位置index为0,而数组的长度Size也为0所以产生了下标越界:http://img1.sycdn.imooc.com//climg/5da80eac0947e1ff07900509.jpg

从报错的信息中可以看到自己代码的位置有如上两处,虽然老师没有同学的代码。跟老师的源码比对后还是发现了可能是由于这个get(0)造成的,也就是employeeDao.selectByDepartmentAndPost(employee.getDepartmentSn(),Contant.POST_FM)
返回的是一个没有长度的数组:

http://img1.sycdn.imooc.com//climg/5da80efe097ab9ef14990511.jpg

同学可以在这句之前打印一下employee.getDepartmentSn()的值,看看这个部门编号下有没有部门经理。检验下查询语句是否有误

http://img1.sycdn.imooc.com//climg/5da8100109f84ff511510297.jpg

如果解答了同学的疑问,望采纳~

祝学习愉快~

  • 提问者 慕用1236393 #1
    System.out.println(employee.getDepartmentSn()); System.out.println(Contant.POST_PM); 这样控制台是有值的, 还是报越界
    2019-10-21 13:46:57
  • 好帮手慕阿满 回复 提问者 慕用1236393 #2
    建议同学参考这个问答再试试:https://class.imooc.com/course/qadetail/162880,祝:学习愉快~
    2019-10-21 16:44:50
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师