如何有条件地设置变量值
我正在尝试根据条件设置变量值,我想知道在 Java 8 中是否有更好的方法来做到这一点,而不是使用多个 if else 或 switch 语句。
我需要根据字符串值设置请求编号
123 为 foo,123 为 bar,456 为 xyz,000 作为默认值,即任何其他字符串值。
if(someString.equalsIgnorecase("foo")){
x = someObj.setRequestNumber(123);
}
else if(someString.equalsIgnorecase("bar")){
x = someObj.setRequestNumber(123);
}
else if(someString.equalsIgnorecase("xyz")){
x = someObj.setRequestNumber(456);
}
else{
x = someObj.setRequestNumber(000);
}
回答
尝试这个:
switch (someString.toUpperCase()) {
case "XYZ":
myNum = 1;
break;
case "FOO":
myNum = 2;
break;
case "BAR":
case "ANOTHER_BAR":
myNum = 3;
break;
default:
myNum = -1;
break;
}
编辑:如果两者都旨在获得相同的结果,则仅添加了一个示例。使用新的 Switch 特性(JDK 14、15、16),您甚至可以简化 Switch 语句!链接:https : //openjdk.java.net/jeps/361
- @kaya3 不,打开字符串是 Java 8 中的新功能,因此这在早于 Java 8 的 Java 版本中无效。
- 开关处理字符串从 java 7 开始可用,而不是 8!