【问题标题】:How to code logical expression 'equals "MR" or "X" '? [duplicate]如何编码逻辑表达式'等于“MR”或“X”'? [复制]
【发布时间】:2018-07-19 00:05:43
【问题描述】:

在 Java 中的 if else 语句方面需要帮助。当l.getPlot().equals("MR")("X") 以及l.getZone().equals("UP SPEC") 设置上限时,需要程序输出。

任何人都可以向我解释如何正确设置它,以便当查询匹配 MR 或 X 时,它将设置顶部。

注意:如果我删除 || ("X"),它将适用于所有 MR 项目,但会将所有 ("X") 留空。

if (l.getPlot().equals("MR")) || ("X"){
                if (l.getZone().equals("UP SPEC")) {
                    limit.setTopUpper(l.getLimit());
                } else if (l.getZone().equals("LO SPEC")) {
                    limit.setTopLower(l.getLimit());
                }
            }

【问题讨论】:

  • 使用这个:if ("MR".equals(l.getPlot()) || "X".equals(l.getPlot())) ... 你每次都需要检查相等性。另外,将字符串文字放在第一位,以避免空指针异常

标签: java


【解决方案1】:

这应该可以解决问题,因为它将逻辑“或”应用于两个条件,而不是一个条件和一个裸字符串。

if (l.getPlot().equals("MR")) || (l.getPlot().equals("X")){

这是一个改进的版本(感谢 Tim Biegeleisen),它避免了空指针异常。

if ("MR".equals(l.getPlot()) || "X".equals(l.getPlot()))

如果equals() 的参数计算为NULL,则结果是干净的false

【讨论】:

  • 改进了吗?未敢苟同。如果需要空检查,我更愿意将它们明确化或使用Objects.equalsYoda conditions
猜你喜欢
  • 1970-01-01
  • 2019-01-13
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-23
相关资源
最近更新 更多