Java switch 语句:需要常量表达式,但它是常量
因此,我正在研究这个具有一些静态常量的类:
public abstract class Foo {
...
public static final int BAR;
public static final int BAZ;
public static final int BAM;
...
}
然后,我想要一种方法来获取基于常量的相关字符串:
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";
}
}
但是,当我编译时,我在3个案例标签中的每个标签上都收到错误。constant expression required
我知道编译器需要在编译时知道表达式才能编译开关,但为什么不是常量?Foo.BA_