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

标签 java compare equals

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

Long value = new Long(0);
System.out.println(value.equals(0));

为什么Longequals比较返回false

最佳答案

Long.equals仅当参数也是 Long 时才返回 true

javadoc 说:

Compares this object to the specified object. The result is true if and only if the argument is not null and is a Long object that contains the same long value as this object.

事实上,下面的代码得到 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);

关于java - 为什么 Long equals 在相同值时返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43583927/

相关文章:

java - 如何使用Android Fragment?

JQuery 自动完成插件 - 它们如何比较?

java - 通过无知解决 LazyInitializationException

java - 作为初学者编写我自己的 Java Map 实现

java - 为什么在具体实现方法签名中没有继承最终参数修饰符?

java - 两个 hashCode 是否相等是否重要,即使这两个对象不是来自同一类型?

Java HashSet 不会添加两个具有相同 hashCode 和 equals 的对象(OK),但 contains() 表示第二个对象不在集合中

mysql - 比较sql中的两个值

actionscript-3 - ActionScript比较数组

Java 实现克隆、泛型类。