相关疑难解决方法(0)

Java:在子类下使用带有枚举的switch语句

首先,我将说明我对C#中的枚举更加熟悉,看起来java中的枚举非常混乱.

正如您所看到的,我正在尝试在下一个示例中使用switch语句@enums,但无论我在做什么,我总是会收到错误.

我收到的错误是:

SomeClass.AnotherClass.MyEnum.VALUE_A必须使用不合格的枚举常量替换合格的案例标签VALUE_A

事情是我非常理解错误,但我不能只编写VALUE_A,因为枚举位于另一个子类中.有没有办法解决这个问题?为什么它会在Java中发生?

//Main Class
public class SomeClass {

    //Sub-Class
    public static class AnotherClass {
        public enum MyEnum {
            VALUE_A, VALUE_B
        }    
        public MyEnum myEnum;
    }

    public void someMethod() { 
        MyEnum enumExample //...

        switch (enumExample) {
            case AnotherClass.MyEnum.VALUE_A: { <-- error on this line
                //..
                break;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java enums switch-statement

239
推荐指数
5
解决办法
11万
查看次数

为什么我不能在案例标签中获得Enum常量引用?

为什么在将case语句更改为时,以下代码无法编译

case ENUM1: doSomeStuff();
Run Code Online (Sandbox Code Playgroud)

作品?

public enum EnumType
{
    ENUM1, ENUM2, ENUM3;

    void doSomeStuff()
    {
        switch(this)
        {
        case EnumType.ENUM1: doSomeStuff();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java enums

41
推荐指数
3
解决办法
3万
查看次数

如何在开关盒中使用枚举

我正在尝试检查我的VO中设置的值.

以下是我的clasess.我得到" 合格的案例标签MyEnum.UserType.DOCTORS必须用不合格的枚举常量DOCTORS替换 "

请帮我识别我在这里做错了什么.

MyEnum.java

public MyEnum{
    private UserType userType;

    public UserType getUserType(){
        return userType;
    }

    public void setUserType(UserType userType){
        this.userType = userType;
    }

    public static enum UserType{
        DOCTORS("D"),
        PATIENT("P"),
        STAFF("S");
    }

}
Run Code Online (Sandbox Code Playgroud)

EnumTest.java

public EnumTest {

    .....
    public void onGoBack(MyEnum myEnum) {

        switch(myEnum.getUserType())
        {
            case UserType.DOCTORS: // this shows "The qualified case label MyEnum.UserType.DOCTORS must be replaced with the unqualified enum constant DOCTORS"
                break;

        }
    }

}
Run Code Online (Sandbox Code Playgroud)

java enums switch-statement

29
推荐指数
1
解决办法
3万
查看次数

标签 统计

enums ×3

java ×3

switch-statement ×2