并非所有情况都被打开枚举所涵盖

问题描述 投票:2回答:1

我有[大量的代码可以简化为:]:>

class Test {
    enum Bool { False, True };

    static boolean decode(Bool input) {
        boolean b;
        switch (input) {
            case False: b = false; break;
            case True:  b = true;  break;
        }
        return b;
    }
}

javac以下列理由拒绝它:

Main.java:11: error: variable b might not have been initialized
    return b;

我有点困惑。我认为enum的目的是在编译时固定值列表。在什么情况下我的变量b可能尚未初始化?

[我有[大量的代码可以简化为:]:class Test {枚举Bool {False,True};静态布尔解码(布尔输入){布尔b;开关(输入){...

java enums switch-statement
1个回答
1
投票

这是因为input可能为null。然后,开关盒将不会初始化它。一种解决方法是在default部分为空的情况下进行制作。

© www.soinside.com 2019 - 2024. All rights reserved.