Оператор безопасной навигации в Groovy - PullRequest
2 голосов
/ 23 февраля 2012

Я использую оператор безопасной навигации, чтобы избежать таких NPE, как этот

myInstance?.field1
myInstance?.field2
myInstance?.field3

Чтобы преобразовать приведенный выше код в цикл for, я написал

<g:each var="i" in="${ (1..<4 }">
    myInstance['field'+i]
</g:each>

Как использовать оператор безопасной навигации в приведенном выше коде при получении значений в формате hashmap?
Я посмотрел документы здесь , но у него нет аналогичного примера.

Ответы [ 2 ]

5 голосов
/ 23 февраля 2012

Я бы использовал этот синтаксис:

myInstance?."field$i"
4 голосов
/ 23 февраля 2012

Вы можете сделать:

<g:each var="i" in="${ (1..<4 }">
    ${myInstance?."field$i"}
</g:each>

Или, возможно, лучше (и аккуратнее в вашем коде) было бы сделать это тегом и сделать это так, как вы делали бы это выше внутри чистого тега groovy.

...