报告否定条件的条件表达式。

翻转条件表达式分支的顺序通常会增加这类语句的清晰度。

使用忽略 '!= null' 比较忽略 '!= 0' 比较选项,以忽略 obj != nullnum != 0 形式的比较。 由于 obj != null 实际上意味着“obj 存在”,因此整个表达式的含义不涉及任何否定,所以易于理解。

同样的推理也适用于 num !=0 表达式,在使用位掩码时更是如此。

这些形式还有另外的好处,即先提及有趣的情况。 在大多数情况下,== null 分支的值为 null 本身,如下例所示:


    static String getName(Person p) {
        return p != null ? p.getName() : null;
    }

    static String getExecutableString(int fileMode) {
        return (fileMode & 0b001001001) != 0 ? "executable" : "non-executable";
    }