我甚至不确定这个代码是否会做任何事情,即使它有效,但我不知道如何摆脱"从内部类引用的局部变量必须是最终的或有效的最终"错误消息,显示以"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();
}
}
Run Code Online (Sandbox Code Playgroud)
任何指导将不胜感激,谷歌似乎没有帮助我这一个.
您没有显示所有代码,但我怀疑添加:
final int i0 = i;
Run Code Online (Sandbox Code Playgroud)
在你的循环中使用i0而不是i作为数组的索引应该修复错误.
或者,正如@James_D所评论的那样,您也可以Sprite sprite = fireballRight[i];在匿名类之前添加并sprite在handle方法内部使用.
请注意,final在这种情况下,修饰符对于Java 8+是可选的.
| 归档时间: |
|
| 查看次数: |
1494 次 |
| 最近记录: |