技術メモ、Tips、忘備録

技術系のメモ、試してみたこと、その他

【雑記】javaで定数を比較する時の違和感

javaで定数を比較する時によく、

if(CONSTANT.equals(value)){
    System.out.print("hoge");
}

という書き方をします。
CONSTANTは定数でvalueはチェック対象の変数だと思ってください。

これあんまり好きじゃないんですよね。
理由はやりたいこととやっている事(前から読んだ時の意味)が逆になるからです。
上記の例だと、
□やりたいこと: valueCONSTANTと等しい時、hogeを出力

□やっている事: CONSTANTvalueと等しい時、hogeを出力

いやまぁやっていることはどちらも同じなんですが、やりたいことをそのまま表現するには

if(value.equals(CONSTANT)){
    System.out.print("hoge");
}

となっていた方が単純にいいですよね。。
最近は読みやすいプログラムを書くことが重要になってきているので、正直この辺は気持ち悪いですね。

ちなみに定数を前に持ってくるのは、valueがnullだったときのNullPointerExceptionを避けるためです。

・免責事項

当方は、当記事にコンテンツを掲載するにあたって、その内容、機能等について細心の注意を払っておりますが、コンテンツの内容が正確であるかどうか、最新のものであるかどうか、安全なものであるか等について保証をするものではなく、何らの責任を負うものではありません。また、当方は通知することなく当記事に掲載した情報の訂正、修正、追加、中断、削除等をいつでも行うことができるものとします。また、当記事、またはコンテンツのご利用により、万一、ご利用者様に何らかの不都合や損害が発生したとしても、当方は何らの責任を負うものではありません。