Java if 语句和布尔表达式

Java if statements and boolean expressions

有一个基本的 if 语句问题,所以我在 Java 中有一个 if 语句,如下所示:

if (
    !isOmitted(word,map.get(word.length()+1))     &&
    !isInserted(word,map.get(word.length()-1))    &&
    !isTransposed(word,map.get(word.length()))    &&
    !isSubstituted(word,map.get(word.length()))   &&
    !isCapital(word,map.get(word.length())))
{
    noSuggestion=true;
}

每个单独的方法都可以根据需要完美运行。 java 是否有任何方法可以检查所有条件,即使其中一个条件为假?我知道 && 运算符的性质是,一旦条件不成立,就没有必要检查其余条件,因为整个条件都将设置为假,但我希望我能做到这样的事情是为了让我的代码更干净。我知道我可以使用布尔变量,并将返回值分配给 5 个不同的变量,但是是否有其他解决方法来强制检查每个条件?非常感谢高级

单个 & 是一个非短路操作数 - 即无论是否需要,都会评估两侧。

更多信息在这里 - https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.22.2

但是,这听起来像是一个糟糕的设计。事实上,出于这个原因,一些代码分析工具会自动将这些运算符标记为可疑。通常,您会希望在每个方法对您的对象的状态进行一些更改时调用它们,这不是您在 if 语句中期望的事情。但是您的方法名称并不表明这一点。你想达到什么目的?