Recentemente ho letto del comportamento di GStringImpl
s rispetto a String
s quando utilizzato nelle raccolte in Groovy.Groovy GStringImpl e comportamento stringa
Capisco che il motivo per cui questo è falsa ...
"${'test'}".equals("test") == false
è dovuta alla necessità di simmetria del contratto .equals()
, però mi chiedevo se ci fosse un motivo il GStringImpl
non poteva essere valutato immediatamente a String
. Così, quando faccio qualcosa di simile ...
"${'someString'}"
non ottengo un GStringImpl
, ottengo solo una pianura Java String
posteriore, che posso usare subito come chiave in una mappa, ad esempio .
So che ci sono alcune soluzioni, come
String s = "${'someString'}"
però cose come questa è un po 'scomodo, e il disguido tra i GStringImpl
e String
sembra essere un grande 'Gotcha' per Newbees Groovy.
Abbastanza corretto. Grazie per la spiegazione. – rcgeorge23
Possiamo estendere dinamicamente la classe GStringImpl per chiamare automaticamente .toString() sulla costruzione? –