具有Groovy字符串值的映射能否(干净地)转换为Java字符串

具有Groovy字符串值的映射能否(干净地)转换为Java字符串,groovy,Groovy,我认为这是一个简单的问题,虽然还不容易让我弄明白-所以我决定我会问 我的代码在Groovy中有一个映射,它是,我需要做的一件事是调用一个Java方法,该方法接受 所以我做了: def javaMap = new HashMap<String, String>() passedInProps.each { key, val -> javaMap.put(key, val.toString()) } // pass 'javaMap' to java method here

我认为这是一个简单的问题,虽然还不容易让我弄明白-所以我决定我会问

我的代码在Groovy中有一个映射,它是
,我需要做的一件事是调用一个Java方法,该方法接受

所以我做了:

def javaMap = new HashMap<String, String>()
passedInProps.each { key, val ->
    javaMap.put(key, val.toString())
}
// pass 'javaMap' to java method here - no problems!
defjavamap=newhashmap()
passedprops.each{key,val->
put(key,val.toString())
}
//在这里将“javaMap”传递给java方法-没有问题!

这“工作”很好,但看起来不太“棒”。我不能使用“扩展点”操作符或其他方法使这个更干净吗?

我可以尝试以下方法:

Map jMap = passedInProps.collectEntries { key, value -> 
    [ (key) : value.toString() ] 
}

我想试试这样的东西:

Map jMap = passedInProps.collectEntries { key, value -> 
    [ (key) : value.toString() ] 
}

这看起来像是我想要的。然而,groovy jdk文档中的两个“collectMany”方法都表示它们返回集合,而不是映射。那么我应该用你说的话还是用“收集条目”??你在收集地图条目。是的-我开始键入一个答案,然后分心并输入另一个。这看起来像是我想要的。然而,groovy jdk文档中的两个“collectMany”方法都表示它们返回集合,而不是映射。那么我应该用你说的还是用“收集条目”呢?你是在为地图收集条目。是的,我开始键入一个答案,然后分心,换了一个答案。