为什么两个等价的 属性 在 Groovy 中不相等
Why two equivalent property are not equal in Groovy
请看一下这个简单的代码:
String.metaClass {
getA = {delegate <<= delegate}
}
assert 'a'.a == 'a'.a
Result: Assertion failed:
assert 'a'.a == 'a'.a
| | |
| false aa
aa
为什么结果是 FALSE?
我在 Groovy 2.4.7 Windows 7 SP1
上工作
左移 Groovy 中的字符串生成 StringBuffer
(docs)
所以 'a'.a == 'a'.a
试图在两个 StringBuffer 上做 equals。
你不能用 StringBuffer
这样做,因为 equals
方法没有重载,并且 just checks if they are the same instance
请看一下这个简单的代码:
String.metaClass {
getA = {delegate <<= delegate}
}
assert 'a'.a == 'a'.a
Result: Assertion failed: assert 'a'.a == 'a'.a | | | | false aa aa
为什么结果是 FALSE?
我在 Groovy 2.4.7 Windows 7 SP1
上工作左移 Groovy 中的字符串生成 StringBuffer
(docs)
所以 'a'.a == 'a'.a
试图在两个 StringBuffer 上做 equals。
你不能用 StringBuffer
这样做,因为 equals
方法没有重载,并且 just checks if they are the same instance