代码:
//takes in the parameters by int and string and builds an array
public void setParameter(int newParameterNum, String newParameterName) {
this.parameterNum = newParameterNum;
this.parameterName = newParameterName;
this.parameterList = new String[numParameters];
this.parameterList[parameterNum] = parameterName;
for (int i = 0; i < numParameters; i++) {
this.countParameter += i;
}
}
主代码(不可编辑):
//Add the needed parameters, Report should make sure I am not trying to break it
report1.setParameter(0, "01/01/1970");
report1.setParameter(1, "01/01/2018");
report1.setParameter(2, "pjdt");
错误:
运行:线程"main“java.lang.ArrayIndexOutOfBoundsException中出现异常:2 at
week6project.Week6Project.main(Week6Project.java:34) C:\Users\nicho\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java处的week6project.Report.setParameter(Report.java:134)返回:1生成失败(总时间:0秒)
那么,我该如何忽略不想添加到数组中的参数呢?如果请求的参数数量小于传递的参数数量。
也就是说,它请求2 parameters
,但在本例中传递的是3
。
The numParameters is updated through this method:
public void setNumParameters(int newNumParameters) {
this.numParameters = newNumParameters;
}
设置的主要方法:
//Set the number of parameters for each report
report1.setNumParameters(2);
report2.setNumParameters(4);
发布于 2018-10-15 03:26:47
当您尝试使用index>= array.length
访问数组元素时,会得到错误java.lang.ArrayIndexOutOfBoundsException
。
在下面的代码行中,确保0 <= parameterNum < numParameters
this.parameterList[parameterNum] = parameterName;
https://stackoverflow.com/questions/52806195
复制相似问题