Groovy中的安全导航操作符

Sap*_*Sap 2 grails groovy operators conditional-operator

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

myInstance?.field1
myInstance?.field2
myInstance?.field3
Run Code Online (Sandbox Code Playgroud)

要转换上面的代码for for loop我写道

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

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

Bur*_*ith 5

我会用这个语法:

myInstance?."field$i"
Run Code Online (Sandbox Code Playgroud)


tim*_*tes 5

你可以这样做:

<g:each var="i" in="${ (1..<4 }">
    ${myInstance?."field$i"}
</g:each>
Run Code Online (Sandbox Code Playgroud)

或者,可能更好(并且在您的代码中更整洁)将其设为一个标签,并在上面的纯 groovy 标签中执行此操作。