- 締切済み
nullチェックの書き方(java)
javaでnullチェックをするメソッドがあったとします。 private boolean isNull(Object obj){ // objのnullチェックする } 自分的には private boolean isNull(Object obj){ // objのnullチェックする return obj == null; } と書きたくなってしまうのですが、分かりにくいという指摘をある人からされました。 みなさんでしたら、どのように実装しますか? もしそれによるメリットなんかあったら教えていただきたいです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tegra
- ベストアンサー率64% (9/14)
はじめまして。 ってかObjectのNULLチェックをわざわざメソッドに分けなくてもいい気がしますが・・・。 まーあえて書くなら return obj == null; でいいと思います。 このレベルの判定にif文使う必要ないです。
- Tacosan
- ベストアンサー率23% (3656/15482)
いや, return obj == null; の方がよほど自然だし「間違えない」という意味でより良い. これが「わかりにくい」というのは, その「わかりにくい」という人間が悪い. if (obj == null) { return true; } else { return false; } でも確かに同じことだけど, このような書き方は読む人間に余計な労力を使わせてしまう. むしろ本当にクラスの中で private boolean isNull(Object obj) と書いているとしたら, そっちの方がおかしい. private boolean isNull() static private boolean isNull(Object obj) のどちらかでしょう.
お礼
ご回答ありがとうございます。 確かにメソッドにする意味ないかもですね。 private static boolean isNull(Object obj) で定義してますね
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
private boolean isNull(Object obj){ if (obj == null) { return true; } else { return false; } } うそです。 質問にある書き方でも分かりにくいとかいうなら private boolean isNull(Object obj){ return obj == null ? true : false; } 比較するものが決まり切っていて、その結果をどこかに代入したりするならば、 いちいちifうんたら~なんて書きません。 ifで書くメリットは、そもそも比較がどういうものかを理解できていない人、 三項演算子を知らない人でも理解できる、年配の方にはウケがいいという、 低次元のことしか思いつきませんでした。 他の方法では、比較を行った結果、真ならA、偽ならBとするわけですから、 微々たる差でしょうが、速度的にも、質問にある書き方がベストだと思いますけど。 指摘を受けたならば、最適解を教えてもらい、なぜそれが最適なのかを 当人に問う方が断然早いと思います。
お礼
ご回答ありがとうございます。 指摘者からされたのは naktakさんの出した最初の例に近いです↓ private boolean isNull(Object obj){ if (obj == null) { return true; } else { return false; } } 見やすいということなんですが‥好みだと思うんですけどね。
お礼
ご回答ありがとうございます。 ですよね。同じ考えの人がいて安心しました。