1

请看一下这个简单的代码:

String.metaClass {
  getA = {delegate <<= delegate}
}

assert 'a'.a == 'a'.a
Result: Assertion failed: 
    assert 'a'.a == 'a'.a
               | |      |
               | false  aa
               aa

为什么结果是FALSE

我在 Windows 7 SP1 上的 Groovy 2.4.7 工作

4

1 回答 1

0

在 Groovy 中对字符串的 LeftShift 生成一个StringBuffer( docs )

'a'.a == 'a'.a尝试在两个 StringBuffers 上做 equals 也是如此。

你不能这样做,StringBuffer因为equals方法没有重载,只是检查它们是否是同一个实例

于 2016-08-25T14:31:04.610 回答