我在 Eclipse 大师发布的 Eclipse 站点上找到了一些代码:
String something = null ;
if (equals(null)) {
System.out.println("b'");
}
它编译。但它似乎没有运行。
这是什么java代码?
我在 Eclipse 大师发布的 Eclipse 站点上找到了一些代码:
String something = null ;
if (equals(null)) {
System.out.println("b'");
}
它编译。但它似乎没有运行。
这是什么java代码?
equals()
Object
是在类中声明的普通方法。
与您的类或基类中的任何其他方法一样,您可以this
使用操作数调用它。
equals()
相当于this.equals()
。
调用equals(null)
永远不会返回 true,因为您不能在null
实例上调用方法。
它确实运行,但可能并不明显!试试下面的代码:
if (equals(null)) {
System.out.println("b");
}
else {
System.out.println("c");
}
使用此代码,您应该会看到标准输出上的字母c
。
equals(Object obj)
是在Object
类中声明的方法。
equals(someObject)
相当于this.equals(someObject)
。
equals(obj)
的 API 契约是:
"true
如果this
对象与obj
参数相同;否则为假。."
在您的示例代码中,obj
is not this
object but null
。因此,if
子句评估为false
,因此正在执行的虚拟机不会评估System.out.println("b");
。