我有以下代码:

public class Main {

    static final String fu = Week.class.getName();

    public static void main(String[] arg0){

        String h = "dummy";
        switch (h) {
*        case fu:
            System.out.println(8);
            break;
        default:
            break;
        }
    }
}


现在,Eclipse抱怨* case expressions must be constant expressions。但是我将fu设置为我所知道的一样恒定!为什么这还不够,我该怎么办(if-else除外)?

最佳答案

为什么这还不够


因为它不是JLS 15.28规则的编译时常量。


  为什么这还不够,我该怎么办(if-else除外)?


基本上没有什么-除非您使用字符串文字,否则显然不是很愉快。

关于java - 最终变量的常数不足以适应开关情况,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29218002/

10-09 01:29