考虑这个代码:
public final class Foo
{
private enum X
{
VALUE1, VALUE2
}
public static void main(final String... args)
{
final X x = X.VALUE1;
switch (x) {
case VALUE1:
System.out.println(1);
break;
case VALUE2:
System.out.println(2);
}
}
}
此代码工作正常。
但是,如果我替换:
case VALUE1: // or VALUE2
有:
case X.VALUE1: // or X.VALUE2
则会出现:
java:/path/to/Foo.java:whatever:枚举开关case标签必须是枚举常量的非限定名
就我而言,VALUE1
并且X.VALUE1
完全一样。引用的文字根本不能解释它。
在JLS中,它是如何定义报表中的enum
值switch
必须以这种方式写的?
发布于 2018-04-27 20:18:49
SwitchLabel
期望EnumConstantName
被定义为枚举常量标识符的值,这并不合格
EnumConstant: 注释opt标识符参数opt ClassBody opt
https://stackoverflow.com/questions/-100003316
复制相似问题