我有[大量的代码可以简化为:]:>
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;开关(输入){...
这是因为input
可能为null。然后,开关盒将不会初始化它。一种解决方法是在default
部分为空的情况下进行制作。