首页 > 解决方案 > 在 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 类中不使用附加值变量。谢谢你。抱歉,如果这是一个愚蠢的问题。

标签: javaoopenumssyntax-error

解决方案


您不能切换枚举本身的值。你可以做的是在一个类中使用枚举并使用那里的值:

class Test {

    private Entry entry = Entry.X;

    public void switchEntry() {
        entry = entry == Entry.X ? Entry.O : Entry.X;
    }
}

enum Entry {
    X, O;
}


推荐阅读