我有这种开关的情况下,我想知道是否有任何方法来取代常数值与枚举。我试图定义一个枚举文件,并使用它而不是常数值,但它无法识别。
switch (item.getToString()) {
case "XS":
estimatedTimes.add(3.5);
break;
case "S":
estimatedTimes.add(10.5);
break;
case "M":
estimatedTimes.add(17.5);
break;
case "L":
estimatedTimes.add(28.0);
break;
case "XL":
estimatedTimes.add(45.5);
break;
}
这是我的枚举,我用TShirtSize.XS.getValue()
代替了"XS"
。但是它不起作用。
public enum TShirtSize {
XS("XS"), S("S"), M("M"), L("L"), XL("XL");
private final String value;
JiraTShirtSize(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
编辑:项目分类为:
@Getter
@Setter
public static class Item {
private String fromString;
private String toString;
}
在将枚举添加到用例后还更改了代码:
switch (item.getToString()) {
case TShirtSize.XS.getValue():
estimatedTimes.add(3.5);
break;
//////....
}
2条答案
按热度按时间9vw9lbht1#
可以使用
enum
值作为case
标签:但是为什么不将数字作为
enum
的一个属性添加,并将switch
一起删除呢?在代码的上下文中:
iovurdzv2#
可以在
switch
运算符中使用Enum
,不需要转换为字符串值。或者,可以将逻辑直接封装到
Enum
中,而根本不需要编写switch
运算符***P.S.*不要忘记您可以将字符串值转换为
Enum
示例。