総ありがとう数 累計4,285万(2014年10月25日現在)

毎月4,000万人が利用!Q&Aでみんなで助け合い!

-PR-
gooelvin

javaでnullチェックをするメソッドがあったとします。

private boolean isNull(Object obj){
   // objのnullチェックする
}

自分的には

private boolean isNull(Object obj){
   // objのnullチェックする
   return obj == null;
}

と書きたくなってしまうのですが、分かりにくいという指摘をある人からされました。

みなさんでしたら、どのように実装しますか?

もしそれによるメリットなんかあったら教えていただきたいです。
  • 回答数3
  • 気になる数0

Aみんなの回答(全3件)

回答 (全3件)

  • 2011-04-07 22:46:02
  • 回答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とするわけですから、
微々たる差でしょうが、速度的にも、質問にある書き方がベストだと思いますけど。


指摘を受けたならば、最適解を教えてもらい、なぜそれが最適なのかを
当人に問う方が断然早いと思います。
お礼コメント
ご回答ありがとうございます。

指摘者からされたのは naktakさんの出した最初の例に近いです↓

private boolean isNull(Object obj){
   if (obj == null) {
    return true;
   } else {
    return false;
   }
}

見やすいということなんですが‥好みだと思うんですけどね。
投稿日時 - 2011-04-07 23:00:07
通報する
  • 同意数0(0-0)
  • ありがとう数0
  • 2011-04-08 00:00:52
  • 回答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)
のどちらかでしょう.
お礼コメント
ご回答ありがとうございます。

確かにメソッドにする意味ないかもですね。

private static boolean isNull(Object obj)
で定義してますね
投稿日時 - 2011-04-08 22:19:37
通報する
  • 同意数0(0-0)
  • ありがとう数0
  • 2011-04-08 16:48:39
  • 回答No.3
はじめまして。

ってかObjectのNULLチェックをわざわざメソッドに分けなくてもいい気がしますが・・・。

まーあえて書くなら
return obj == null;
でいいと思います。
このレベルの判定にif文使う必要ないです。
お礼コメント
ご回答ありがとうございます。

ですよね。同じ考えの人がいて安心しました。
投稿日時 - 2011-04-08 22:20:32
通報する
  • 同意数0(0-0)
  • ありがとう数0
  • 回答数3
  • 気になる数0
  • ありがとう数4
  • ありがとう
  • なるほど、役に立ったなど
    感じた思いを「ありがとう」で
    伝えてください

関連するQ&A

その他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する

あなたの悩みをみんなに解決してもらいましょう

  • 質問する
  • 知りたいこと、悩んでいることを
    投稿してみましょう
-PR-
-PR-
-PR-

特集

専門医・味村先生からのアドバイスは必見です!

関連するQ&A

-PR-

ピックアップ

  • easy daisy部屋探し・家選びのヒントがいっぱい!

-PR-
ページ先頭へ