-PR-
  • 暇なときにでも
  • 質問No.6652169
締切り
済み

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

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

お礼率 87% (7/8)

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

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

自分的には

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

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

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

もしそれによるメリットなんかあったら教えていただきたいです。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル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
  • 回答No.2
レベル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
  • 回答No.3
レベル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
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ