在JAVA中使用this更改ENUM类函数中的ENUM值
我有一个名为 entry 的 Java 枚举。我的目标是拥有一个将枚举值更改为另一个值的函数。如果我的枚举值为 X,我希望它变成 Y,反之亦然。我尝试编写的代码在这里。但这不会编译,它说在我使用过的地方预期变量this。
public enum Entry {
X,
O;
public void switchEntry(){
this == Entry.X? this = Entry.O: Entry.X ;
}
}
另外我想知道是否可以在我的 ENUM 类中不使用额外的值变量。谢谢你。如果这是一个愚蠢的问题,请道歉。
回答
您不能切换枚举本身的值。您可以做的是在类中使用枚举并在那里修改值:
class Test {
private Entry entry = Entry.X;
public void switchEntry() {
entry = entry == Entry.X ? Entry.O : Entry.X;
}
}
enum Entry {
X, O;
}