Я хочу найти конкретный ключ на данной карте. Если ключ найден, я хочу получить значение этого ключа с карты.
Это то, что мне удалось:
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
Поскольку в этом случае замыкание на поиск является нулевым, это приводит к исключению Null Pointer. Конечно, приведенный выше фрагмент кода работает, когда it.key == "likes"
, но я не уверен, что всегда найду целевой ключ на карте.
Что такое "Groovier" и безопасный способ сделать это на карте:
- Проверьте, имеет ли карта данный ключ,
- И если да, получите значение этого ключа