我有一个 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/