【发布时间】:2016-09-05 18:24:43
【问题描述】:
我有以下代码:
class MyClass {
private Value value;
public enum Value {
INSERT_ONLY("INSERT_ONLY"), UPDATE_ONLY("UPDATE_ONLY"), UPSERT("UPSERT") ;
private final String val ;
private Value(final String v) {val = v ;}
public String toString() {return val ;}
public String getVal() {
return val;
}
} ;
public Value getValue() {
return value;
}
public void setValue(Value value) {
this.value = value;
}
}
public class one {
public static void main(String[] args) {
MyClass obj = new MyClass() ;
obj.setValue(MyClass.Value.INSERT_ONLY) ;
String s = obj.getValue().toString() ;
String s1 = MyClass.Value.INSERT_ONLY.toString() ;
switch(s) {
case "INSERT_ONLY" : System.out.println("INSERT_ONLY") ;
break ;
case "s2" : System.out.println("s2") ;
break ;
}
}
}
此代码有效。但我想要的是在 switch-case 中我使用enum Value 中定义的字符串。如果我在case 中使用s1,则会产生错误。出路是什么?
【问题讨论】:
-
您使用的是哪个版本的 Java?什么错误?
-
我想在
case中使用s1而不是在switch中使用
标签: java enums switch-statement