我有这个简单的代码:
double[][] params = new double[][]{{197.0,258.0,427.0,426.0,507.0,524.0,386.0},
{345.0,473.0,484.0,422.0,406.0,291.0,289.0}};
for (int i = 0; i <= params.length; i++) {
for (int j = 0; j <= params[i].length; j++) {
System.out.println("Coordinates: " + params[i][j]); //line 29
}
}
和错误:
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 7 at
> com.eyecom.gen.generate_xml(gen.java:29)
为什么我会收到此异常?
答案 0 :(得分:5)
在Java中,数组基于零。在这里你超过了数组范围。使用
for (int i = 0; i < params.length; i++) {
for (int j = 0; j < params[i].length; j++) {
答案 1 :(得分:3)
尝试
for (int i = 0; i < params.length; i++) {
for (int j = 0; j < params[i].length; j++) {
System.out.println("Coordinates: " + params[i][j]); // line 29
}
}
数组中的索引从0
到length-1
,因此您不希望使用等于length
的索引。
答案 2 :(得分:2)
更改for循环结构
for (int i = 0; i <= params.length; i++) {
for (int j = 0; j <= params[i].length; j++) {
System.out.println("Coordinates: " + params[i][j]); //line 29
}
}
到
for (int i = 0; i < params.length; i++) {
for (int j = 0; j < params[i].length; j++) {
System.out.println("Coordinates: " + params[i][j]); //line 29
}
}