5つのボタンがあり、以下のコードに示すように、いくつかの初期化アクションを実行するためにそれらを反復処理する必要があります。ただし、Javaでは、関数ScreenFactory.produce()に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]);
}