我正在用Java实现井字游戏,并且有一个这样声明的枚举:

public enum Player{X,O};


做出动作后,我需要交换给其他玩家,并且这样做:

this.nextPlayer = ((this.nextPlayer == Player.X)?Player.O:Player.X);


有没有一种方法可以自动“递增”枚举结构的下一个元素?我想知道有5个或6个不同的值,并且想在其中交换而不需要大量代码(并且不实现单独的方法)。

最佳答案

您可以将枚举的ordinal()方法与模运算符一起使用以实现以下目的:

this.nextPlayer = (nextPlayer.ordinal() + 1) % Player.values().length;

09-05 12:04