小编Twi*_*zzl的帖子

为什么我不能将枚举用于 switch-case-语句?

我想将枚举常量用于 switch-case-语句。

我正在使用以下枚举/类:

public enum Cons {

  ONE(1), 
  TWO(2);

  private final int val;

  private Cons(final int newVal) {
    val = newVal;
  }

  public int getVal() {
    return val;
  }
}



public class Main {

  public static void main(String[] args) {

    int test;

    // some code

    switch(test) {
        case Cons.ONE.getVal():
            // ...
            break;
        case Cons.TWO.getVal(): 
            // ...
            break;
        default:
            // ...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问题: “case 表达式必须是常量表达式” => 我的枚举的值不是常量,尽管该属性private final int val声明为final.

我如何使用这个枚举来进行案例陈述?

java enums case-statement switch-statement

5
推荐指数
1
解决办法
3815
查看次数

布尔值可以是幻数吗

我想知道如何处理代码中的布尔值。

假设我有一Human堂课:

   public class Human {

     private final static int NEWBORN = 0;

     private int age;
     private boolean married;

     public Human() {
       age = NEWBORN;
       married = false;
     }

     ...
   } 

Run Code Online (Sandbox Code Playgroud)

就是false在这种情况下,一个神奇的数字,我应该创建一个常量像我随着年龄的增长做了?

如果没有,是否有任何情况我必须处理布尔值?

java boolean coding-style

3
推荐指数
1
解决办法
195
查看次数