我最近一直在阅读有关GStringImpl
s 与String
s 在 Groovy 中的集合中使用时的行为。
我知道这评估为假的原因......
"${'test'}".equals("test") == false
是由于.equals()
合同的对称性要求,但是我想知道是否有原因GStringImpl
不能String
立即评估为 a 。所以当我做这样的事情时......
"${'someString'}"
我没有得到 a GStringImpl
,我只是得到了一个普通的 Java String
,例如,我可以立即将其用作地图中的键。
我知道有一些解决方法,比如
String s = "${'someString'}"
然而,这样的事情有点不方便,而且对于 Groovy 新手来说, 和 之间的混淆GStringImpl
似乎String
是一个很大的“陷阱”。