これは重複した質問である可能性があります。String 変数を null に初期化します。値で更新する場合と更新しない場合があります。この変数が null と等しくないかどうかを確認したいのですが、何をしようとしても null ポインター例外が発生します。スローする余裕はありません。コストがかかるため、nullpointer 例外が発生します。効率的な回避策はありますか。TIA
Harish
質問する
2042 次
5 に答える
3
こんなことをしているとは思いますが、
String s = null;
if (s.equals(null))
このようにnullをチェックします
if (s == null)
より良いアプローチは、null を無視して、次のように期待値をチェックすることです。
if ("Expected value".equals(s))
この場合、s が null の場合、結果は常に false になります。
于 2009-08-14T13:01:16.177 に答える
3
使用する場合
if (x == null)
を取得できませNullPointerException
ん。
私はあなたがやっていると思う:
if (x.y == null)
x
null のためではなく、null のためにスローされx.y
ます。
それでも説明できない場合は、無効性をテストするために使用しているコードを投稿してください。
于 2009-08-14T12:55:10.300 に答える
1
s==null のみを比較しています
s==null が NPE をスローしないことを記述したコード スニペットを表示できますか
于 2009-08-14T13:21:52.423 に答える
1
文字列は不変です
@Test(expected = NullPointerException.class)
public void testStringEqualsNull() {
String s = null;
s.equals(null);
}
@Test
public void testStringEqualsNull2() {
String s = null;
TestCase.assertTrue(s == null);
}
于 2009-08-14T12:56:29.487 に答える