求教枚举的使用有关问题

求教枚举的使用问题不知道为什么以下用法是错误的提示case expressions must be constant expressionsJava

求教枚举的使用问题
不知道为什么以下用法是错误的
提示
  case expressions must be constant expressions

Java code
public class TestEnum {    public static void main(String[] args) {        int val = 2;        switch (val) {        case INT.ONE.getVal():            break;        default:            break;        }    }}enum INT {    ONE(1), TWO(2), THREE(3);    private int val;    private INT(int val) {        this.val = val;    }    /**     * @return the val     */    public int getVal() {        return val;    }}


[解决办法]
你应该这样用[code=Java][/code]public class Test11 {

public static void main(String[] args) {
INT v=INT.ONE;
int val;
switch (v) {
case ONE:
val=1;
break;

default:
break;
}
}
}

enum INT {
ONE(1), TWO(2), THREE(3);

private int val;

private INT(int val) {
this.val = val;
}

/**
* @return the val
*/
public int getVal() {
return val;
}

}
[解决办法]
case的分支需要是常量值,而不能是变量值,
这就是理由。。。

探讨

1.2楼的用法我当然是知道的
只是我不知道我这样为什么有问题