特定のマップで特定のキーを見つけたい。キーが見つかったら、マップからそのキーの値を取得したいと思います。
これは私がこれまでに管理したものです:
def mymap = [name:"Gromit", likes:"cheese", id:1234]
def x = mymap.find{ it.key == "likes" }
if(x)
println x.value
これは機能し、出力は期待どおり「チーズ」です。素晴らしいですがx.value
、最後にはやりたくありませんif(x)
。xに何らかの値を直接含めたい。
次のように値を x に直接取得することはできません。
def mymap = [name:"Gromit", likes:"cheese", id:1234]
def x = mymap.find{ it.key == "likesZZZ" }.value
println x
この場合、find クロージャは null であるため、Null Pointer Exception が発生します。もちろん、上記のコード スニペットは の場合it.key == "likes"
に機能しますが、マップ内でターゲット キーが常に見つかるかどうかはわかりません。
マップ上でこれを行うための「グルービア」で安全な方法は何ですか:
- マップに特定のキーがあるかどうかを確認し、
- もしそうなら、このキーの値を取得します