Java 为什么1!=1返回真值?

Java 为什么1!=1返回真值?,java,redis,integer,int,Java,Redis,Integer,Int,代码是这样的 if (responseEntity.getBody().getMeta().getCode() != ApiExceptionEnum.SUCCESS.code()) { return null; } 有时它会返回null 为什么? 在这种情况下,响应来自redis,==或=检查比较的对象是否指向内存中的同一位置。要比较存储在比较对象中的值,请使用所有Java对象从Object类继承的.equals()方法。使用equals比较不==或=原因与新整数(1)==Integ

代码是这样的

if (responseEntity.getBody().getMeta().getCode() != ApiExceptionEnum.SUCCESS.code()) {
    return null;
}
有时它会返回null

为什么?


在这种情况下,响应来自redis

==
=检查比较的对象是否指向内存中的同一位置。要比较存储在比较对象中的值,请使用所有Java对象从
Object
类继承的
.equals()
方法。

使用
equals
比较不
==
=
原因与
新整数(1)==Integer.valueOf(1)
false
的原因相同。谢谢,最后我使用Integer.intValue,但为什么当Integer=1时,这样的代码是`Integer!=整数`return true?在java中,当整数小于128 1=1时返回true,当整数大于128 1=1时返回false,但我得到了情况1!=1返回true当整数为1时,为什么不使用aotuunboxing?@JasonYu因为equals()方法是由对象继承的,在Java中基本类型不被视为对象,它们不继承任何内容。如果调用此方法,则表示要比较对象,而不是基本类型
responseEntity.getBody().getMeta().getCode() -> Integer  1
ApiExceptionEnum.SUCCESS.code() -> Integer 1