为什么会出现“从内部类引用的局部变量必须是最终的”?
我什至不知道此代码即使能正常工作也不会做任何事情,但是我不知道该怎么做才能摆脱“从内部类引用的局部变量必须是最终的或实际上是最终的”错误消息,该错误消息在以“
fireballRight [i]”开头的三行中显示。
Sprite[] fireballRight = new Sprite[50];public void fireRight() {
for(int i = 0; i < 50; i++) {
new AnimationTimer() {
public void handle() {
fireballRight[i].setImage("puercosloco/fireballright.png");
rightx++;
fireballRight[i].setPosition(rightx, righty);
fireballRight[i].render(gc, 80, 55);
}
}.start();
}
}
任何指导将不胜感激,谷歌似乎没有帮助我这一点。
回答:
您尚未显示所有代码,但我怀疑添加了以下内容:
final int i0 = i;
在循环内使用i0
而不是将其i
用作数组的索引应该可以修复错误。
另外,如@James_D所评论,您还可以Sprite sprite =
fireballRight[i];在匿名类之前添加并sprite
在handle
方法内部使用。
请注意,在final
Java 8+的情况下,修饰符是可选的。
以上是 为什么会出现“从内部类引用的局部变量必须是最终的”? 的全部内容, 来源链接: utcz.com/qa/421503.html