到目前为止,我的理解是==
是一个运算符重载.equals()
。然而我最近发现
new Integer(1) == new Long(1) // returns true
whereas
new Integer(1).equals(new Long(1)) // returns false
所以我猜==
不完全是简写.equals()
,那么如何判断相等呢?
==
在 Groovy 中大致相当于equals()
但是,当比较具有相同值的不同类时,您会发现它与 Java 不同 - 如果该类是Comparable
。如果可能的话,Groovy 还会进行类型转换。
如果你检查代码,看起来最终是这样的compareToWithEqualityCheck() https://github.com/groovy/groovy-core/blob/master/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java#L557被执行为==
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)