groovy中each迭代get方法获取值未空,原因探究。GStringImpl

来源:互联网 发布:python sorted函数 编辑:程序博客网 时间:2024/04/28 22:00

groovy今天遇到个问题,就是通过在迭代器里面用key或者entryset.key,取值,会取到空对象。

打印这个对象后,发现它本身不是java.lang.String,而是org.codehaus.groovy.runtime.GStringImpl类型。

问下了H,他说这个groovy的字符串有点意思。看下源码之后再分享。


def ss1="value1" ;def e = new HashMap();e.put("key1",ss1);e.each{key,value ->        println("-------------------------------------------");        println(e.get("$key"));        println(e."$key");        println(e.get("$key".toString()));        println("$key".getClass().toString());        println("123$key".getClass().toString());        println(("123"+"123$key").getClass().toString());}

输出结果

null
value
value
class org.codehaus.groovy.runtime.GStringImpl
class org.codehaus.groovy.runtime.GStringImpl
class java.lang.String

原创粉丝点击