我最近一直在閱讀關於在Groovy中的集合中使用GStringImpl
s和String
的行爲。Groovy GStringImpl和字符串行爲
我明白這個計算結果爲false的原因...
"${'test'}".equals("test") == false
是由於.equals()
合同的對稱性要求,但我不知道是否有一個原因,GStringImpl
不能只需立即評估爲String
。所以,當我做這樣的事情......
"${'someString'}"
我沒有得到一個GStringImpl
,我只是得到一個普通的Java String
回來,這是我能爲關鍵的地圖立即使用,例如。
我知道有一些解決方法,像
String s = "${'someString'}"
但是像這樣的東西是有點不方便,GStringImpl
和String
之間的mixup似乎是一個很大的「疑難雜症」對Groovy newbees。
不夠公平。感謝您的解釋。 – rcgeorge23
我們可以動態擴展GStringImpl類來自動調用施工中的.toString()嗎? –