== 是否适用于每个 Class 对象?
Is == works on every Class object?
所以,让我先展示一下代码。
public class Class1 {
private static class Class2 {
String name;
Object value;
EntryNode next;
}
}
因此,如您所料,我正在研究链表。所以,对于给定的值作为函数中的参数;
public Object put(String name, Object value) {
...
...
if (head.value == value) {
}
}
那么,特别是,我们可以为对象 class 使用这个等号“==”吗?一般来说,除了字符串,我们可以在任何class中使用'=='吗?如果它是字符串,则没有。如果它是整数,那么肯定是的。但是现在,你怎么比较?
==
with 告诉您右侧和左侧是否指的是完全相同的实例。对于 String
、Integer
、List
、BigInteger
、Map
等值类型,这往往会给你一个意想不到的答案。你应该几乎总是使用 equals
, 除了基本类型。
如果您想在不抛出 NullPointerException
的情况下处理 null
,那么 java.util.Objects.equals
(注意复数形式)可以为您处理。
Valhalla 项目可能会在 Java 的未来版本中将基元的概念扩展到用户定义的类型。
所以,让我先展示一下代码。
public class Class1 {
private static class Class2 {
String name;
Object value;
EntryNode next;
}
}
因此,如您所料,我正在研究链表。所以,对于给定的值作为函数中的参数;
public Object put(String name, Object value) {
...
...
if (head.value == value) {
}
}
那么,特别是,我们可以为对象 class 使用这个等号“==”吗?一般来说,除了字符串,我们可以在任何class中使用'=='吗?如果它是字符串,则没有。如果它是整数,那么肯定是的。但是现在,你怎么比较?
==
with 告诉您右侧和左侧是否指的是完全相同的实例。对于 String
、Integer
、List
、BigInteger
、Map
等值类型,这往往会给你一个意想不到的答案。你应该几乎总是使用 equals
, 除了基本类型。
如果您想在不抛出 NullPointerException
的情况下处理 null
,那么 java.util.Objects.equals
(注意复数形式)可以为您处理。
Valhalla 项目可能会在 Java 的未来版本中将基元的概念扩展到用户定义的类型。