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


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

    指摘者からされたのは 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
    いや, 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)
    のどちらかでしょう.
    お礼コメント
    ご回答ありがとうございます。

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

    private static boolean isNull(Object obj)
    で定義してますね
    投稿日時 - 2011-04-08 22:19:37
    • ありがとう数0
    • 2011-04-08 16:48:39
    • 回答No.3
    はじめまして。 ってかObjectのNULLチェックをわざわざメソッドに分けなくてもいい気がしますが・・・。 まーあえて書くなら return obj == null; でいいと思います。 このレベルの判定にif文使う必要ないです。 ...続きを読む
    はじめまして。

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

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

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

    関連するQ&A

    -PR-
    -PR-

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

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

    特集


    成功のポイントとは?M&Aで経営の不安を解決!

    -PR-

    ピックアップ

    -PR-
    ページ先頭へ