在《Scala编程》一书中,我可以读到
==
运算符的行为就像是定义如下:final def == (that: Any): Boolean = if (null eq this) {null eq that} else {this equals that}
但是,为了避免空指针异常,必须有编译器魔法,对吗?有没有办法用纯Scala复制这种行为;即,如果接收者为null,则返回一种东西,如果不是,则返回另一种东西?我的意思是一个实际的null eq this
实现。
我想我可以编写一个“pimp”,然后在包装类上定义方法,但有没有更直接的方法来做到这一点?
null
指针上调用它:你会得到一个NullPointerException
。但使用 == 则不会。 - Jean-Philippe Pellet