2009-08-14 23 views
3

これはdupicate質問かもしれpossiblityがあります。 は私がnull.IにString変数がまたは私はこの変数がnullに等しくないかどうかを確認したいvalue.Nowでそれを更新しない場合があります初期化し、私はexception.Iはに余裕がないNULLポインタを取得してみてください何でもそれはそこにあなたがにNullPointer例外

if (x == null) 

を使用している場合は、NullPointerExceptionを取得することはできませんefficient.TIA

+0

たぶん、NPEをスローすることはありません S ==ヌルを書かれているコードスニペットを表示することができますhttp://stackoverflow.com/questions/271526/how-to-avoid-null-statements-in-java – Artelius

+2

コードを教えてください。あなたの説明は私の経験に合っていません。可能であればコンパイラでヌルチェックを有効にする –

+0

サーバを再起動するのを忘れていて問題が解決しました。問題が解決しました –

答えて

3

ある任意の回避策costly.IsあるようにNullPointer例外をスローします。

は、私はあなたがやっている疑いがある:

x.yがnullであるため xは、nullではないので、投げている
if (x.y == null) 

それはそれを説明していない場合は、NULLかどうかをテストするために使用しているコードを投稿してください。

+0

あなたは正しいです。私は変数yをXクラスでヌルとして宣言しています。しかしX nullではありません。null以外の値については例外はスローされません。 –

+1

'x'がnullでない場合、' if(xy == null) 'は' NullPointerException'をスローしません。 –

+0

ヌルポインター例外をスローしていないこの行の直前に、別の関数にX.zを渡しているため、Xをnullにすることはできません。 –

1

文字列

String s = null; 

    if (s.equals(null)) 

あなたはより良いアプローチを無視することである。この

if (s == null) 

のようにnullをチェックするのいずれか、私はあなたがこのような何かをやっていると思い

@Test(expected = NullPointerException.class) 
public void testStringEqualsNull() { 
    String s = null; 
    s.equals(null); 
} 

@Test 
public void testStringEqualsNull2() { 
    String s = null; 
    TestCase.assertTrue(s == null); 
} 
+0

Java 1.4を使用しないアサートまたはアノテート –

+0

次に、 "if(....)throw new runtimeException(" assert error .... "); –

3

不変でありますヌルとし、このような期待値を確認してください。

この場合、
if ("Expected value".equals(s)) 

sがNULLの場合、結果は常にfalseです。

+0

これと同じものを入力しました! –

+0

私はs ==を比較しています期待値はnull以外のものです –

1

私はSを比較しています==ヌルは

は、あなたが見て

+0

あなたは正しいです...例外の理由は、もともと私は s!= null || sと比較していたからです。( "") と、その部分がnullpointerExceptionをスローしていました。しかし、私はそれを削除しましたが、サーバを再起動するのを忘れました。 –

関連する問題