java.lang.indexoutofboundsexception index 0 size 0

时间:2014-02-05 06:48:44

标签: java indexoutofboundsexception

通过复选框在数组中添加系统函数对象时,我一直收到此java.lang.indexoutofboundsexception错误:

SEVERE: Servlet.service() for servlet spis threw exception
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at com.spis.dao.impl.CodesValueDaoImpl.getDescription(CodesValueDaoImpl.java:95)
at com.spis.bo.impl.CodesValueBoImpl.getDescription(CodesValueBoImpl.java:103)
at com.spis.controller.SystemUserController.viewPaged(SystemUserController.java:408)
at com.spis.controller.SystemUserController.systemUser(SystemUserController.java:48)

以下是systemFunctions:每当我向用户添加systemFunction时,它都会显示错误或者数据库中的systemFunction colummn为null。但是当我在数据库中设置systemFunction =“”时,页面显示正确,但显然没有systemFunctions数组..

String[] systemFunctions=(String[])request.getParameterValues("systemFunctions");
String appendedSysFunctions ="";

//Append system functions
if(systemFunctions!=null){
    for(int i=0;i<systemFunctions.length;i++){
        if(i==(systemFunctions.length-1)){
        appendedSysFunctions+=systemFunctions[i];
        }
        else{
        appendedSysFunctions+=systemFunctions[i] + ",";
        }
    }
}

另一个代码:

StringTokenizer st = new StringTokenizer(su.getAllowedSysFunc(), ",");
while (st.hasMoreTokens()){
    appendedSystemFunc = appendedSystemFunc + codesValueMethods.getDescription 
    (3, st.nextToken());
    if(st.hasMoreTokens()){
    appendedSystemFunc = appendedSystemFunc + ", \n";
    }
}

1 个答案:

答案 0 :(得分:-1)

您必须检查systemFunctions是否为空以及其长度是否大于0:

if(systemFunctions!=null && systemFunctions.length>0){
  ...
}