通常、このようなステートメントは条件式の分岐の順序を入れ替えると明確さが増します。
obj != null または num != 0 形式の比較を無視するには、「'!= null' 比較を無視する」および「'!= 0' 比較を無視する」オプションを使用します。
obj != null は事実上 "obj exists" を意味するため、式全体に否定の意図はありません。このため、理解しやすいです。
同じ論法は 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";
}