为什么会出现“从内部类引用的局部变量必须是最终的”?

我什至不知道此代码即使能正常工作也不会做任何事情,但是我不知道该怎么做才能摆脱“从内部类引用的局部变量必须是最终的或实际上是最终的”错误消息,该错误消息在以“

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];在匿名类之前添加并spritehandle方法内部使用。

请注意,在finalJava 8+的情况下,修饰符是可选的。

以上是 为什么会出现“从内部类引用的局部变量必须是最终的”? 的全部内容, 来源链接: utcz.com/qa/421503.html

回到顶部