我正在尝试在java中设置Buttons的标签,并且我已将Button
类的数组声明为Button b[12]
,并将String数组声明为String months[12]
。
String数组由12个字符串组成,其名称为月份,我正在尝试通过以下代码设置每个按钮的标签:
b[i] = new Button(months[i]);
虽然,我在这里得到ArrayIndexOutOfBound
例外......
解决方案是什么?
答案 0 :(得分:3)
ArrayIndexOutOfBound
异常表示您尝试访问的内存比先前声明的更多。我很确定您的代码如下所示:
for (int i = 1 /* or 0 maybe? doesn't matter... */; i <= 12; i++) {
b[i] = new Button(months[i]);
}
实际上,它无法工作,因为你试图在13日访问内存。我们将元素从0开始索引,所以月份[12]实际上是第13个元素,你没有为它分配内存。
正确的代码:
for (int i = 0; i < b.length; ++i) {
b[i] = new Button(months[i]);
}
只要months
数组与b
数组的长度相同或更长,它就会“正常”工作。
无论如何:请发布您的完整代码,我会稍微编辑一下我的答案。