如何有条件地设置变量值

我正在尝试根据条件设置变量值,我想知道在 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!

以上是如何有条件地设置变量值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>