改良?
http://itpro.nikkeibp.co.jp/article/COLUMN/20081125/319810/
こちらの記事なのですが、今日1日ずっと気になってたので。
一応言っておくと自分は正解でした。でしたが、腑に落ちないんですよねぇ。確かにヌルポが防げるというのはわかるのですが、そもそもその時点(if文の時)で変数がNullである場合ってバグの可能性が高いじゃないんですかね?
仮にそういう場合に「ヌルポで落ちるの嫌!」→「でも変数がNullであるかどうか不安」→「だから""のequalsで比較!」って事だとちょっと嫌だなぁ。そういうプログラムに今まで何度も出合ったことはありますが、どうも馴染めないです。
仮に「正常なプログラムの流れとして変数がNullの可能性もあるから」という状態なら
if(hoge != null && hoge.equals(""))
と書くのが可読性は上なんじゃないでしょうか。自分だけですかね??
そもそも比較元ってのは左側に普通は書くはずなので、比較元が右にも左にもいろいろ書いてあるプログラムをみるのはなんか抵抗がありますし、バグを無理やり潰してるって印象を受けちゃいます(ExceptionをCatchするだけしてThrowしないプログラム的感覚が・・・(これは言いすぎかな??)) まぁ「空文字の比較ぐらいいいじゃない」と言われればそれまでですが、実はこういう記述方法が一般的なんでしょうか?(自分の頭が固い???)