-PR-
  • 暇なときにでも
  • 2011-04-07 22:08:18
  • 質問No.6652169
締切り
済み

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

  • 閲覧数14618
  • ありがとう数8
  • 気になる数0
  • 回答数3
  • コメント数0
gooelvin

お礼率 87% (7/8)

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

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

自分的には

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

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

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

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

    回答 (全3件)

    • 2011-04-07 22:46:02
    • 回答No.1
    naktak レベル14

    ベストアンサー率 36% (784/2137)

    private boolean isNull(Object obj){    if (obj == null) {     return true;    } else {     return false;    } } うそです。 質問にある書き方でも分かりにくいとかいうなら private boolean isNull(Object obj){    return obj == n ...続きを読む
    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

    お礼率 87% (7/8)

    ご回答ありがとうございます。

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

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

    見やすいということなんですが‥好みだと思うんですけどね。
    投稿日時 - 2011-04-07 23:00:07
    • ありがとう数1
    • 2011-04-08 00:00:52
    • 回答No.2
    Tacosan レベル14

    ベストアンサー率 23% (3656/15479)

    いや, return obj == null; の方がよほど自然だし「間違えない」という意味でより良い. これが「わかりにくい」というのは, その「わかりにくい」という人間が悪い. if (obj == null) { return true; } else { return false; } でも確かに同じことだけど, このような書き方は読む人間に余計な労力を使わせてしまう. むしろ本当にクラスの中 ...続きを読む
    いや,
    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

    お礼率 87% (7/8)

    ご回答ありがとうございます。

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

    private static boolean isNull(Object obj)
    で定義してますね
    投稿日時 - 2011-04-08 22:19:37
    • ありがとう数0
    • 2011-04-08 16:48:39
    • 回答No.3
    tegra レベル7

    ベストアンサー率 64% (9/14)

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

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

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

    お礼率 87% (7/8)

    ご回答ありがとうございます。

    ですよね。同じ考えの人がいて安心しました。
    投稿日時 - 2011-04-08 22:20:32
    • ありがとう数0
    • 回答数3
    • 気になる数0
    • ありがとう数4
    • ありがとう
    • なるほど、役に立ったなど
      感じた思いを「ありがとう」で
      伝えてください
    • 質問する
    • 専門家・企業を含めた、
      多くの人々が答えてくれます
    このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
    このQ&Aにはまだコメントがありません。
    あなたの思ったこと、知っていることをここにコメントしてみましょう。

    関連するQ&A

    -PR-
    -PR-

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

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

    特集


    うつ病による不安の正しい対処法をチェック

    -PR-

    ピックアップ

    -PR-
    ページ先頭へ