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