小编dos*_*osw的帖子

为什么,当我在switch语句中有每个枚举常量的情况时,我仍然必须提供默认值吗?

我试图在Java中声明一个枚举,并在switch语句中使用该类型的变量,其中涵盖了该类型的枚举常量的所有可能情况.

enum MyEnum {
    FOO, 
    BAR
}

private static void test(MyEnum e) {
    String msg;
    switch (e) {
        case FOO:
            msg = "foo";
            break;
        case BAR:
            msg = "bar";
            break;
    }
    System.out.println("Enum is: " + e + " msg is: " + msg); //compiler error
}
Run Code Online (Sandbox Code Playgroud)

为什么不编译器能够检测该开关总是初始化msg(或抛出一个NullPointerException,因为enull)?

java enums

7
推荐指数
1
解决办法
812
查看次数

标签 统计

enums ×1

java ×1