这可能是一个愚蠢的问题,但我不明白为什么它不起作用:
public class MainClass {
public enum Header{
ValueType("Value Type"),
LimitType("Limit Type"),
Currency("Currency");
Header(String value) {
this.value = value;
}
private final String value;
public String getValue(){
return value;
}
}
static void getHeaderValue (String headerValue) {
switch (headerValue) {
case Header.LimitType.getValue() :
System.out.println(Header.LimitType.getValue());
break;
case Header.ValueType.getValue() :
System.out.println(Header.ValueType.getValue());
break;
case Header.Currency.getValue() :
System.out.println(Header.Currency.getValue());
break;
default:
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
编译器注意到"需要常量字符串表达式".提前谢谢您的解释.
与你的枚举无关,而是你的switch语句,它需要在case case子句中使用常量.case需要常量表达式"helloWorld",表达式Header.LimitType.getValue()可能返回一个永不改变的值,但它不是编译器的常量表达式.
| 归档时间: |
|
| 查看次数: |
2143 次 |
| 最近记录: |