【发布时间】:2014-05-09 05:32:40
【问题描述】:
我有一个用于枚举常量的 switch case 标签。我的枚举和案例标签示例如下:
private Enum PreferenceType {
FIRST,SECOND,THIRD;
private String prefKey;
PreferenceType(String prefKey) {
this.prefKey = prefKey;
}
@Override
public String toString() {
return prefKey;
}
}
private String getPreference() {
switch(getMessage())
{
case PreferenceType.FIRST.toString():
//do something;
break;
case PreferenceType.SECOND.toString():
//do something;
break;
case PreferenceType.THIRD.toString():
//do something;
break;
default: break;
}
}
整个case标签语句被eclipse标记为红线 “case PreferenceType.FIRST.toString():”当我将鼠标悬停在 case 标签上时,错误提示“case 表达式必须是常量表达式”。我的 jdk 是 1.7 版,我的 eclipse 是 3.7.2 版。谁能告诉我如何解决这个问题?
【问题讨论】:
-
搜索寻找错误信息;这不是一个新的编译器错误,您不是第一个遇到它的人。
-
我的问题不同。我想知道为什么即使 Eclipse 3.7.2 支持 Java 7 功能,case 标签也会引发错误。此外,已经提到的答案与我的代码人员无关,因此请停止将其标记为重复。我在这个问题上工作已经筋疲力尽了,有人请在这里帮助我。
-
在您的枚举中,构造函数接受一个参数,但您的枚举定义(FIRST、SECOND、THIRD)没有提供参数。能否请您发布真实的代码。
标签: java string enums switch-statement