Java 引用不带枚举名称的内部枚举

标签 java enums inner-classes

我有一个 Java 类,里面有一个 2 选项枚举。外部类有一个枚举的成员实例。我有一个方法可以切换成员的选项。就像这样:

    public class Foo {
        public enum BarEnum {
            OPTION1, OPTION2;
        }

        private BarEnum barmember;

        private void switchBarmember {
            switch (barmember) {
                case OPTION1: barmember = BarEnum.OPTION2; break;
                case OPTION2: barmember = BarEnum.OPTION1; break;

            }
        }
    }

我的问题是,有没有办法在不说 BarEnum. 的情况下执行更改?换句话说,有没有办法让该方法看起来像这样:

        private void switchBarmember {
            switch (barmember) {
                case OPTION1: barmember = OPTION2; break;
                case OPTION2: barmember = OPTION1; break;

            }
        }

如果没有办法,请告诉我。谢谢!

最佳答案

不完全是,但这会起作用:

public class Foo {
    public enum BarEnum {
        OPTION1,
        OPTION2;

        private BarEnum switchValue ( )
        {
            switch( this )
            {
            case OPTION1:
                 return OPTION2;
            case OPTION2:
                 return OPTION1;
            }

            throw new AssertionError("Should not be here");
        }
    }

    private BarEnum barmember;

    private void switchBarmember {
        barmember = barmember.switchValue( );
    }
}

关于Java 引用不带枚举名称的内部枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11422337/

相关文章:

java - 什么是NullPointerException,我该如何解决?

java - 集合或可变参数中的通用枚举

java - 从私有(private)类访问公共(public)类中的方法/字段

c++ - 创建一个结构体作为枚举类成员

java - 如何检查枚举是否相等

java - 为什么非静态内部类不能有静态成员(字段和方法)?

Java 嵌套类无法识别其自身实例

java - 当我点击 "Generate"按钮时只工作一次

java - 如何使用 get() 方法访问 arrayList 中的元素?

java - 获取特定的 ArrayList 项