相关疑难解决方法(0)

Java switch语句:需要常量表达式,但它是常量

所以,我正在研究这个有一些静态常量的类:

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_常量?

java compile-time-constant

159
推荐指数
7
解决办法
19万
查看次数

标签 统计

compile-time-constant ×1

java ×1