groovy: безопасно найти ключ на карте и вернуть его значение
Я хочу найти определенный ключ в данной карте. Если ключ найден, я хочу получить значение этого ключа с карты.
Это то, что мне удалось до сих пор:
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 как-то напрямую содержал значение.
Я могу'получить значение непосредственно в х, как это:
def mymap = [name:"Gromit", likes:"cheese", id:1234]
def x = mymap.find{ it.key == "likesZZZ" }.value
println x
Поскольку в этом случае замыкание поиска является нулевым, это приводит к исключению нулевого указателя. Конечно, приведенный выше фрагмент кода работает, когдаit.key == "likes"
, но я не уверен, что всегда найду целевой ключ на карте.
Что такоеGroovier» и безопасный способ сделать это на карте:
Проверьте, есть ли у карты заданный ключ,И если так, получите значение этого ключа