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