有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java改进条件检查

在以下场景中需要最佳方法

我已经列出了一些属性,如来源、目的地、是/否,如下所示:

Example: 
source ,  destination , Yes/No
abc, bcd, Yes
abd, gdc, Yes

在java中,我可以使用如下条件

if(Obj.getSource().equals("abc")) {
   if(Obj.getDest().equals("bcd")) { 
      return true;
   }
}

if(Obj.getSource().equals("abd")) {
   if(Obj.getDest().equals("gdc")) { 
      return true;
   }
}

通过这种方式,我可以处理上述情况,基于结果Yes,我可以处理我的业务逻辑

但我的方法是两行多检查,代码行很长, 请向我推荐使用java7或java8的好方法


共 (1) 个答案

  1. # 1 楼答案

    您可以使用逻辑运算符将所有四个条件组合为一个条件。例如,通过使用逻辑and&&逻辑or||。然后它可能看起来像:

    if ((first && second) || (third && fourth)) {
        return true;
    }
    

    或替换所有条件:

    if ((Obj.getSource().equals("abc") && Obj.getDest().equals("bcd"))
            || (Obj.getSource().equals("abd") && Obj.getDest().equals("gdc"))) {
        return true;
    }
    

    请注意,您可以在变量中记住Obj.getSource()Obj.getDest()的结果,以节省一些性能,并通过使用该变量使条件更具可读性

    如果您在其他情况下return false;,您甚至可以完全省略整个if,因为您可以直接返回评估条件后产生的boolean(它评估为truefalse,无需返回truefalse硬编码):

    return (first && second) || (third && fourth);