【发布时间】:2014-10-15 13:45:30
【问题描述】:
给定以下 Java 代码:
int test = createIntData(Column[8]);
private int createIntData (String realData) {
if (realData == null) {
return (int) (Math.random()*100);
}
else {
return Integer.parseInt(realData);
}
}
这样会抛出异常:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
这是因为参数只有最大索引4。那么如何改变程序实现功能:一旦参数超出索引,返回值:
Math.random() * 100
【问题讨论】:
-
问题出在
Column[8]。这与您的createIntData方法无关,真的。参数在方法被调用之前被评估 - 所以如果评估参数失败(就像它在这里所做的那样),那么该方法将无能为力。 -
@JonSkeet
Column[8]和ArrayIndexOutOfBoundsException: 10不适合 -
那么如何首先验证 Column[8] 并在它超出索引时对其进行处理?@JonSkeet
-
忘记数字“10”,因为我没有完整复制我的代码。 @TAsk
-
在 Java 中,命名约定规定变量以小写字母开头。这使得更容易快速区分类型和变量之间的区别。您可以从 SME_Dev 的回答中看到,不遵守这个约定真的会让人们失望。
标签: java indexoutofboundsexception