我正在使用Spring EL从一组相当复杂的嵌套映射和列表中提取值。我希望能够使用类似

[9]['firstSubKey']['secondSubKey']

除了[9]['firstSubKey']可能为null。我不知道如何正确使用安全导航:我尝试过
[9]['firstSubKey']?['secondSubKey']


[9]['firstSubKey']?.['secondSubKey']

并且都返回了某种解析错误。我最终通过使用使它起作用
[9]['firstSubKey']?.get('secondSubKey')

但这感觉很俗气。有没有更好的方法,或者这只是SpringEL所没有的功能?我正在使用Spring 3.1.3。

相关地,如果我有一个未知数目的元素的列表/数组,有没有办法安全地检查它? IE,如果我有4个元素的数组,我想[5]返回null。照原样,它抛出SpelEvaluationException

最佳答案

我无法为您提供更好的解决方案;只要
"['0']['a'] != null ? ['0']['a']['b'] : null"

"size() > 5 ? [5] : null"

关于java - Spring EL : Safe navigation with map access,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15554065/

10-09 09:35