当前位置: 代码迷 >> J2SE >> 求教枚举的使用有关问题
  详细解决方案

求教枚举的使用有关问题

热度:2496   发布时间:2013-02-25 00:00:00.0
求教枚举的使用问题
不知道为什么以下用法是错误的
提示
  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楼的用法我当然是知道的
只是我不知道我这样为什么有问题
  相关解决方案