• 締切済み

nullチェックの書き方(java)

javaでnullチェックをするメソッドがあったとします。 private boolean isNull(Object obj){    // objのnullチェックする } 自分的には private boolean isNull(Object obj){    // objのnullチェックする    return obj == null; } と書きたくなってしまうのですが、分かりにくいという指摘をある人からされました。 みなさんでしたら、どのように実装しますか? もしそれによるメリットなんかあったら教えていただきたいです。

みんなの回答

  • tegra
  • ベストアンサー率64% (9/14)
回答No.3

はじめまして。 ってかObjectのNULLチェックをわざわざメソッドに分けなくてもいい気がしますが・・・。 まーあえて書くなら return obj == null; でいいと思います。 このレベルの判定にif文使う必要ないです。

gooelvin
質問者

お礼

ご回答ありがとうございます。 ですよね。同じ考えの人がいて安心しました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

いや, 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) のどちらかでしょう.

gooelvin
質問者

お礼

ご回答ありがとうございます。 確かにメソッドにする意味ないかもですね。 private static boolean isNull(Object obj) で定義してますね

回答No.1

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とするわけですから、 微々たる差でしょうが、速度的にも、質問にある書き方がベストだと思いますけど。 指摘を受けたならば、最適解を教えてもらい、なぜそれが最適なのかを 当人に問う方が断然早いと思います。

gooelvin
質問者

お礼

ご回答ありがとうございます。 指摘者からされたのは naktakさんの出した最初の例に近いです↓ private boolean isNull(Object obj){    if (obj == null) {     return true;    } else {     return false;    } } 見やすいということなんですが‥好みだと思うんですけどね。

関連するQ&A