-2

これらの Java 構文の問題を解決してください。

私は obj. equals(null) が間違っていることを知っているので、次のような式を書く正しい方法は何ですか

 if(!obj.equals(null)){
 some code    
}

オプション1の間で混乱しています

if(!(obj == null)){
some code
}

と他のオプション 2

if(obj != null){
some code
}

もう 1 つ、次のような式があります。

    if(obj.equals(null) || obj2.equals(obj3))

私が書いた場合、私は正しいですか

if(obj == null || obj2.equals(obj3)) 

またはこれは違うべきですか?

4

4 に答える 4

1

参照が null かどうかを確認しているので、これを使用します。

if(obj != null){
}

また

if(!(obj == null)){
}
于 2013-08-08T13:50:41.067 に答える
1

オプション 1 と 2 は論理的に同等です。私はオプション 2 を好みます。より簡潔です。

if(obj == null || obj2.equals(obj3))null オブジェクトで関数を呼び出す可能性を回避できるため、最適です。

于 2013-08-08T13:52:01.200 に答える
0
 public boolean equals(Object obj) {
        return (this == obj);
    }

それが実際のObject#equalsの実装です。それらはすべて論理的に同等です。

object呼び出しオブジェクトが null の場合を除いてobject.equals()、NPE がスローされます。

于 2013-08-08T13:50:59.533 に答える
0

これらは論理的に同等です。つまり、同じ方法で解決されます。

if(!(obj == null)){
    //some code
}


if(obj != null){
   //some code
}

オブジェクトが null の場合、null ポインター例外が発生します。

if(obj.equals(null) || obj2.equals(obj3))

これは、オブジェクトが null の場合、または obj2 が obj3 と等しい場合に、コード ブロックを実行するとします。

if(obj == null || obj2.equals(obj3)) 
于 2013-08-08T13:52:05.840 に答える