我有 5 个按钮,我需要遍历它们以执行一些初始化操作,如下面的代码所示。但是,Java 阻止我将 i 传递给函数 ScreenFactory.produce() 因为它不是最终的,因为我读到了一些关闭问题。从那以后我不能让它成为最终的,它会阻止循环中的增量。解决办法是什么?
for(int i = 0; i < 5; ++i) {
levelButtons[i].setAction(ActionType.GENERAL_ACTION, new GameAction() {
@Override
public void execute(int screenID) {
Game.instance.changeScreen( ScreenFactory.produce(ScreenFactory.GAME_SCREEN, i));
}
});
TouchHandler.instance.register(levelButtons[i]);
}