4

重複の可能性:
これら2つの条件の違いは?

コードのクリーンアップを行っていますが、NetBeansが変更を提案しました

if(!billAddress1.equals(""))if (!"".equals(billAddress1))

2つの違いと、元のバージョンの読みやすさよりも提案されたバージョンを使用することの利点は何ですか?

4

6 に答える 6

8

billAddress1.equals("")billAddress1is null"".equals(billAddress1)wontの場合、NullPointerExceptionが発生します。

于 2012-11-20T19:27:39.197 に答える
3
// Could cause a NullPointerException if billAddress1 is null
if(!billAddress1.equals(""))

// Will not cause a NullPointerException if billAddress1 is null
if (!"".equals(billAddress1))
于 2012-11-20T19:27:32.850 に答える
3

!"".equals(billAddress1)を引き起こすことは決してないので、そうでなければ必要とされるであろうNPEを取り除くことを可能にすることによって、よりコンパクトな構文を可能にします。billAddress1 == null

于 2012-11-20T19:27:39.043 に答える
2

後者は、値がnullの場合、Nullポインター例外を引き起こしません。

于 2012-11-20T19:28:46.667 に答える
2

他の人が指摘しているように、1つはNPEからあなたを救います。ただし、nullにならないことが確実な場合は、文字列が空かどうかを確認するためのより良い方法は、String.isEmpty()メソッドを使用することです。これは、コードが実行しようとしているようです。

于 2012-11-20T19:32:01.500 に答える
1

最初のものは、NullPointerExceptionを引き起こす可能性があります。

于 2012-11-20T19:29:03.427 に答える