2017-12-18 15 views
-5
if (responseEntity.getBody().getMeta().getCode() != ApiExceptionEnum.SUCCESS.code()) { 
    return null; 
} 

このようなコード、なぜ1!= 1がtrueを返しますか?

responseEntity.getBody().getMeta().getCode() -> Integer 1 
ApiExceptionEnum.SUCCESS.code() -> Integer 1 

時にはそれはnullを返します!

なぜですか?

応答を比較オブジェクトがメモリ内の同じ場所を指しているかどうかをここでRedisの

+2

'=='または '!='ではないオブジェクトを比較するために 'equals'を使用します – Jens

+0

新しい整数(1)== Integer.valueOf(1)が' false'と同じ理由で。 –

+0

ようやくInteger.intValueを使用していただきありがとうございます。しかし、Integer = 1のようなコードでは、 'Integer!= Integer'がtrueを返します。 –

答えて

0

から==又は!=チェックです。比較オブジェクトに格納された値を比較するには、ObjectクラスのすべてのJavaオブジェクトに継承された.equals()メソッドを使用します。

+0

Intergerが1の場合、aotuunboxingはなぜですか? –

+0

@JasonYu equals()メソッドはオブジェクトによって継承されるため、プリミティブ型はJavaではオブジェクトと見なされず、何も継承しません。このメソッドを呼び出すと、プリミティブ型ではなくオブジェクトを比較することを意味します –

関連する問題