所以,我正在研究这个有一些静态常量的类:
public abstract class Foo {
...
public static final int BAR;
public static final int BAZ;
public static final int BAM;
...
}
Run Code Online (Sandbox Code Playgroud)
然后,我想要一种基于常量获取相关字符串的方法:
public static String lookup(int constant) {
switch (constant) {
case Foo.BAR: return "bar";
case Foo.BAZ: return "baz";
case Foo.BAM: return "bam";
default: return "unknown";
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我编译时,我constant expression required在每个3个案例标签上都会出错.
我知道编译器需要在编译时知道表达式来编译一个开关,但为什么不是Foo.BA_常量?