Groovy中的安全导航操作符

时间:2012-02-23 08:13:53

标签: grails groovy operators conditional-operator

我使用安全导航操作符来避免像这样的NPE

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

转换上面的代码for for loop i write

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

当我以hashmap格式检索值时,如何在上面的代码中使用安全导航操作符? 我查看了文档here,但它没有类似的例子。

2 个答案:

答案 0 :(得分:5)

我会使用这种语法:

myInstance?."field$i"

答案 1 :(得分:4)

你可以这样做:

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

或者,可能更好(并且在你的代码中更整洁)将make this a tag和你在纯粹的groovy标签中一样做。