根据Groovy 文档,这==
只是一个“聪明的” equals()
,因为它还负责避免NullPointerException
:
Java 的
==
实际上是 Groovy 的is()
方法,而 Groovy 的方法==
很聪明equals()
![...]
但是要进行通常的
equals()
比较,您应该更喜欢 Groovy 的==
,因为它还负责避免NullPointerException
,无论左右是否null
存在。
因此,如果对象不为空, ==
and应该返回相同的值。equals()
但是,我在执行以下脚本时得到了意想不到的结果:
println "${'test'}" == 'test'
println "${'test'}".equals('test')
我得到的输出是:
true
false
这是一个已知的错误,GStringImpl
还是我遗漏的东西?