是否有可能執行像collect這樣的條件collectEntries?如何在groovy中執行條件collectEntries
10
A
回答
13
[ a:1, b:2, c:3, d:4 ].findAll { it.value > 2 }
應該這樣做
0
這應該工作:
[a:1, b:2, c:3, d:4].collectEntries {
if (it.value > 2)
["${it.key}": it.value]
}
4
這不是簡明扼要的findAll,然而,僅僅是爲了記錄,你可以使用collectEntries
做到這一點:
[ a:1, b:2, c:3, d:4 ].collectEntries {
it.value > 2 ? [(it.key) : it.value] : [:] }
其中評價爲
[c:3, d:4]
Using "${it.key}" as done in this answer似乎有問題,關鍵將最終成爲GStringImpl類的一個實例,而不是字符串。
groovy:000> m = [ a:1, b:2, c:3, d:4 ]
===> [a:1, b:2, c:3, d:4]
groovy:000> m.collectEntries { ["${it.key}" : it.value ] }
===> [a:1, b:2, c:3, d:4]
groovy:000> _.keySet().each { println(it.class) }
class org.codehaus.groovy.runtime.GStringImpl
class org.codehaus.groovy.runtime.GStringImpl
class org.codehaus.groovy.runtime.GStringImpl
class org.codehaus.groovy.runtime.GStringImpl
===> [a, b, c, d]
這是不是你想要的東西:等同GroovyStrings正常字符串將評估爲false即使字符串看起來相同。
相關問題
- 1. 如何在Groovy中執行此操作?
- 2. 如何在MongoDB中執行條件upsert
- 3. 在Java中執行groovy文件
- 4. Maven - 如何執行條件執行
- 5. 如何在PHP中使用多個條件執行if條件?
- 6. 如何在Tensorflow中運行此條件執行?
- 7. 如何在生成文件中執行條件語句
- 8. SoapUI -Groovy XML.Markupbuilder如果條件
- 9. Groovy在Jenkins中執行Bash腳本
- 10. 在groovy中動態執行代碼
- 11. 在Groovy中執行Unix cat命令?
- 12. PHP - 如果(條件)執行
- 13. 如何在獨立的類加載器中執行groovy腳本?
- 14. 如何在Groovy中強制執行bean合約驗證?
- 15. 如何在Groovy腳本中執行'aws ecr get-login'
- 16. 如何使用Groovy腳本在Jenkins中啓動死執行器?
- 17. 如何在Groovy範圍對象中執行此操作?
- 18. 我如何在Groovy中執行等於參考的參考?
- 19. 如何在使用Theories時在jUnit中獲得條件執行?
- 20. RUTA如何根據條件執行塊
- 21. LINQ:如何執行條件和?
- 22. 如何執行與WHERE條件
- 23. 如何執行基於IF條件
- 24. 如何對XML代碼執行條件?
- 25. 如何執行有條件的segue
- 26. 如何阻止else條件執行?
- 27. 如果rails中的條件未執行
- 28. 通過groovy執行SQL執行
- 29. Neo4j - 條件執行
- 30. Groovy文件上傳和執行
按原樣投射NPE。你需要一個'else [:]' –