如何规避`||`的快捷方式

时间:2016-04-21 12:12:52

标签: java

我有两种方法old('fieldname')boolean foo1()。如果其中至少有一个是boolean foo2(),那么我需要致电true。但是我需要两个函数来运行。

如果我写save(),那么由于if (foo1() || foo2()) {save()}的工作方式,foo2()将无法运行。

目前我写

||

但这不是很优雅。

我错过了一些明显的东西吗?

4 个答案:

答案 0 :(得分:3)

您应该使用if (f1 | f2) { } 运算符(请参阅JLS):

&

请注意,同样适用于if (returnFalse() & returnTrue()) { destroyTheWorld(); } 。例如,如果你写:

|

然后两种方法都会运行,但世界是安全的。

请注意,不熟悉f1 = method1(); f2 = method2(); if (f1 || f2) { // ... } 运算符的程序员可能认为它是一个拼写错误,可能会添加另一个管道。确保记录好或简单:

<ion-content has-header="false">
   <div class="row no-padding">
    <div class="col dashboard-top-item center">
      <div class="ion-ionic"></div>
      <div>Second line</div>
    </div>
   </div>
</ion-content>

答案 1 :(得分:3)

你确实错过了一些明显的东西。

使用||而不是boolean

总是评估两个参数,适用于{{1}}类型。但它并不是特别惯用 - 因此很容易受到过度热情的重构者的改变 - 所以我建议你使用评论,或者保留你所谓的不优雅的代码,因为它确实为你提供了隐含的清晰度,我的华丽解决方案缺乏。

答案 2 :(得分:1)

使用按位运算符:|

这将保证对两个术语进行评估,因此在您的情况下执行这两种方法。

if (foo1() | foo2()) {save()}

答案 3 :(得分:1)

您可以使用|运算符。

只是做:

if (f1 | f2) {save()}