Scala的eq,ne,equals,==方法与Java异同
2017-04-24 16:39
211 查看
Any是Scala继承关系中的根类,继承关系图如下:
![](https://img-blog.csdn.net/20170612094636670?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRGF4MW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Any根类的代码:
abstract class Any {
def equals(that: Any): Boolean
def hashCode(): Int
def toString(): String
final def getClass(): Class[_] = sys.error("getClass")
final def ==(that: Any): Boolean = this equals that //可以看出==底层实现调用的是equals方法
final def != (that: Any): Boolean = !(this == that) //!=底层实现也是调用的equals方法,因此可以有一个很好的判断
final def ##(): Int = sys.error("##")
final def isInstanceOf[T0]: Boolean = sys.error("isInstanceOf")
final def asInstanceOf[T0]: T0 = sys.error("asInstanceOf")
}从上面实现可以看出==与!=与equlas的关系了。
eq和ne是比较两个对象的引用是否相等的!
Any根类的代码:
abstract class Any {
def equals(that: Any): Boolean
def hashCode(): Int
def toString(): String
final def getClass(): Class[_] = sys.error("getClass")
final def ==(that: Any): Boolean = this equals that //可以看出==底层实现调用的是equals方法
final def != (that: Any): Boolean = !(this == that) //!=底层实现也是调用的equals方法,因此可以有一个很好的判断
final def ##(): Int = sys.error("##")
final def isInstanceOf[T0]: Boolean = sys.error("isInstanceOf")
final def asInstanceOf[T0]: T0 = sys.error("asInstanceOf")
}从上面实现可以看出==与!=与equlas的关系了。
eq和ne是比较两个对象的引用是否相等的!
相关文章推荐
- scala中==,equals,eq与ne比较
- Java Collection框架在Collection的生命周期中需要基于不变字段的equals()和hashCode()方法
- Java进阶:深入equals方法对象相等比较
- Java中关于==和equal的区别 以及equals()方法重写
- 如何在Java中避免equals方法的隐藏陷阱
- 关于Java equals()方法的几点疑问
- Java String 的 equals() 方法可能的优化
- java中的equals()方法
- java 中 == 和 equals()方法的 比较
- java中equals方法和“==”的比较
- 方法的覆盖(java 和.net 的异同)
- 深入java 的equals方法和hashCode方法
- Java语言规范要求equals方法应具有的特性
- 深入Java的equals方法
- Java语言深入:深入研究Java equals方法,equals,==,equals用法
- 深入java的equals方法,怎么比较两个对象的内容是否相等?对象的内容指的是什么?
- java中equals方法的用法以及==的用法
- JAVA中的 equals()方法与==
- 如何在Java中避免equals方法的隐藏陷阱
- Effective Java Item8-在覆盖equals(Object类的nonfinal方法)时遵循接口规范