scala:对象相等性
AnyRef
中定义了eq
方法,比较两个变量是否指向同一个对象,相当于Java中用==
直接比较,不会抛出空指针异常。
AnyRef
中的equals
方法调用eq
,但是null
调用会抛出空指针异常。必要时重写此方法。
AnyRef
的==
方法,会先判断null
,然后再调用equals
方法。所以不会抛出异常。
应用程序中,最好不直接调用equals
方法,因为用==
比较会在调用equals
方法前做null
检查,且不会抛出异常。
AnyRef
中定义了eq
方法,比较两个变量是否指向同一个对象,相当于Java中用==
直接比较,不会抛出空指针异常。
AnyRef
中的equals
方法调用eq
,但是null
调用会抛出空指针异常。必要时重写此方法。
AnyRef
的==
方法,会先判断null
,然后再调用equals
方法。所以不会抛出异常。
应用程序中,最好不直接调用equals
方法,因为用==
比较会在调用equals
方法前做null
检查,且不会抛出异常。