美文网首页
Java switch语句出现case expressions

Java switch语句出现case expressions

作者: 小的橘子 | 来源:发表于2019-05-25 14:08 被阅读0次

下面代码会报case expressions must be constant expressions错误

class A {
    public static final int NUM = 2 + new Random().nextInt(2);

    static {
        System.out.println("A static block NUM=" + NUM);
    }
    public static void test(){
        int number = 2;
        switch (number){
            case NUM: // 该句就会报如上错误
        }
    }
}

case语句要求的是常量,我们会想NUM声明的就是常量啊,我们需要知道case需要的常量要在编译时确定,但是NUM在编译期间没法确定,故报错。

如果NUM改为public static final int NUM = 2 + 3报错就会消失,虽然也是表达式,但是2和3都是字面值,编译器会进行常量折叠,从而编译器可以确定具体值,那么case语句也就编译成功了。

相关文章

  • Java switch语句出现case expressions

    下面代码会报case expressions must be constant expressions错误 cas...

  • 学习笔记4

    关于条件语句switch case switch case 结构switch(判断){case 数值:语句bre...

  • JVM-06

    switch-case的字节码指令: Java代码如下: 字节码指令如下: 结论是:switch-case 语句 ...

  • Kotlin基础之 When表达式

    Kotlin中的When表达式就是java中的switch case语句 我们在java中这样写switch ...

  • JavaScript基础03----循环

    switch语句 语法 switch(变量) { case值1: 代码语句.. break; case值2: 代码...

  • Java switch case 语句

    switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。 语法格式: switch...

  • JAVA switch case 语句

    switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。 规则:switch 语句...

  • Java switch case 语句

  • Java switch case 语句

    switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。 语法 switch 语句...

  • 条件语句笔记2

    #条件语句2 一.switch语句 switch-case 对...

网友评论

      本文标题:Java switch语句出现case expressions

      本文链接:https://www.haomeiwen.com/subject/nlvazqtx.html