scala:对象相等性

AnyRef中定义了eq方法,比较两个变量是否指向同一个对象,相当于Java中用==直接比较,不会抛出空指针异常。

AnyRef中的equals方法调用eq,但是null调用会抛出空指针异常。必要时重写此方法。

AnyRef==方法,会先判断null,然后再调用equals方法。所以不会抛出异常。

应用程序中,最好不直接调用equals方法,因为用==比较会在调用equals方法前做null检查,且不会抛出异常。

posted @ 2018-12-29 09:04  xuejianbest  阅读(260)  评论(0编辑  收藏  举报