为什么Long equals在相同值时返回false?

Pao*_*gia 1 java compare equals

运行以下代码我期望true结果,但我得到的输出是false.

Long value = new Long(0);
System.out.println(value.equals(0));
Run Code Online (Sandbox Code Playgroud)

为什么回报equals比较?Longfalse

Pao*_*gia 5

Long.equalstrue仅当参数也是a时才返回Long.

javadoc说:

将此对象与指定的对象进行比较.当且仅当参数不为null并且是包含与此对象相同的long值Long对象时,结果才为真.

实际上,以下代码true作为输出.

Long value = new Long(0);
System.out.println(value.equals(new Long(0)));
System.out.println(value.equals((long) 0));
System.out.println(value.equals(0L);
Run Code Online (Sandbox Code Playgroud)