4

Javaでnullでない値をチェックする最良の方法は何ですか.

String query ="abcd";

query != null!query.equals(null).

どっちがいい?なぜ?

4

4 に答える 4

26

あなた実際に_ NPE_ それと同じくらい簡単です。null

これを試してください:

String str = null;
str.equals(null);  // will throw `NPE`.

したがって、基本的に、実行したいテスト自体がNullPointerException2番目のケースでトリガーされます。したがって、それは選択の余地がありません。

于 2013-02-13T21:04:10.887 に答える
11

!str.equals(null)意思

  1. 例外をスローしない場合は常に false を返します。
  2. str が null の場合は例外をスローします

null チェックのポイントは、このコードの参照がstr実際にオブジェクトを参照していることを確認することです。null の場合、 をスローせずに を含むメソッドを呼び出すことはできません。equalsNullPointerException

その!str.equals(null)ため、ヌルチェックが防止することを目的としており、あなたが考えていることをまったく実行しないという非常に問題が発生します。絶対にしないでください。

于 2013-02-13T21:08:23.960 に答える
2

query != nullオブジェクトが であるかどうかを比較しますnullquery.equals("something")そのオブジェクト内の値を比較します。string == "something". したがって、この場合は を使用しますquery != null

于 2013-02-13T21:09:27.887 に答える
2

query != null!query.equals(null)クエリが実際に null の場合に例外をスローする方がよいでしょう。またquery != null読みやすい

于 2013-02-13T21:06:19.500 に答える