我想将枚举常量用于 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.
我如何使用这个枚举来进行案例陈述?
我想知道如何处理代码中的布尔值。
假设我有一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在这种情况下,一个神奇的数字,我应该创建一个常量像我随着年龄的增长做了?
如果没有,是否有任何情况我必须处理布尔值?