【发布时间】:2017-04-15 20:30:26
【问题描述】:
我在 Java 8 上工作,但有一个简单的问题我还没有弄清楚。
我有 3 种方法来验证来自 db 的数据,并根据它们是否得到一行来返回 true 或 false。棘手的部分是,即使我知道第一部分 返回 false,我仍然希望它检查其他两种方法。我的代码是这样写的:
boolean flag = true;
flag = flag && validateMethod1();
flag = flag && validateMethod2();
flag = flag && validateMethod3();
return flag;
问题是,当 validateMethod1() 返回 false 时,它没有调用 validateMethod2()。有人可以解释为什么吗? 我试过这个:
boolean flag = true;
flag = flag & validateMethod1();
flag = flag & validateMethod2();
flag = flag & validateMethod3();
return flag;
仍然面临同样的问题。
【问题讨论】:
-
因为如果一个运算符为假,则永远不可能为真。
-
但是为什么要这样做,
&&表示如果一个false那么结果是false -
@Mritunjay 也许
validateMethod2和validateMethod3有副作用 -
其实我的要求是修改数据库以防为假。所以我想检查所有的方法。