【雑記】javaで定数を比較する時の違和感
javaで定数を比較する時によく、
if(CONSTANT.equals(value)){ System.out.print("hoge"); }
という書き方をします。
※CONSTANT
は定数でvalue
はチェック対象の変数だと思ってください。
これあんまり好きじゃないんですよね。
理由はやりたいこととやっている事(前から読んだ時の意味)が逆になるからです。
上記の例だと、
□やりたいこと: value
がCONSTANT
と等しい時、hogeを出力
□やっている事: CONSTANT
がvalue
と等しい時、hogeを出力
いやまぁやっていることはどちらも同じなんですが、やりたいことをそのまま表現するには
if(value.equals(CONSTANT)){ System.out.print("hoge"); }
となっていた方が単純にいいですよね。。
最近は読みやすいプログラムを書くことが重要になってきているので、正直この辺は気持ち悪いですね。
ちなみに定数を前に持ってくるのは、value
がnullだったときのNullPointerExceptionを避けるためです。