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