How avoid multiple IF loops in Java
本问题已经有最佳答案,请猛点这里访问。
在Java中,避免EDOCX1和1检查的多个EDOCX1 0个块的最佳方法是什么?
下面是我的示例代码。哪一个是最优化的方法?
1 2 3 4 5 6 7 | if (address!=null} { if (firstName!=null) { if (lastName!=null) { } } } |
使用
1 2 3 | if(address!=null && firstName!=null && lastName!=null) { } |
号
例如
1 2 3 | boolean b; b = 3 > 2 && 5 < 7; // b is true b = 2 > 3 && 5 < 7; // b is now false |
1 2 3 | if(address!=null && firstName!=null && lastName!=null) { } |
号
如果要通过所有检查或嵌套if语句的集成,请尝试
使用和运算符(&;)
1 2 3 4 | if(address!=null && firstName!=null && lastName!=null) { //DoSomething here } |
我建议你看短路评估
没有if循环
1 2 3 4 | boolean complete = address != null && firstName != null && lastName != null; if (complete) { } |
怎么办:
1 2 3 4 5 |
。
用途:
1 2 3 | if (notNulls(address, firstName, lastName)) { // do something } |
。
正如其他人指出的,逻辑与(&;&;)可能是整合逻辑的最佳方法。只有当双方都对
1 2 3 4 5 | if (address != null && firstName != null && lastName != null) { // Whatever you want to do with that... } else { // Whatever you want to do with bad input } |
出于多样性的考虑,您还可以使用一种尝试捕获方法。在Java中,如果您试图调用一个空值的方法,则可以抛出一个Null PoExtExchange异常,您可以捕获并处理它。
1 2 3 4 5 | try { // Whatever you want to do with that... } catch (NullPointerException npe) { // Whatever you want to do with bad input } |
。
如果您有一组可能为空的非常大的输入,那么这种方法会很有帮助,尽管一般来说我不提倡这种方法。(第二种方法的问题是,如果您从触发nullpointerException的