集合投影
Projection 允许集合驱动子表达式的计算,结果是
一个新的系列。projection 的语法是.![projectionExpression]
.例如
假设我们有一个发明家列表,但想要他们出生的城市列表。
实际上,我们希望评估placeOfBirth.city
对于 Inventor 中的每个条目
列表。以下示例使用 projection 来执行此作:
-
Java
-
Kotlin
// evaluates to ["Smiljan", "Idvor"]
List placesOfBirth = parser.parseExpression("members.![placeOfBirth.city]")
.getValue(societyContext, List.class);
// evaluates to ["Smiljan", "Idvor"]
val placesOfBirth = parser.parseExpression("members.![placeOfBirth.city]")
.getValue(societyContext) as List<*>
数组和任何实现java.lang.Iterable
或java.util.Map
.使用地图驱动投影时,投影表达式为
根据 Map 中的每个条目(表示为 JavaMap.Entry
).结果
的 of a projection across a map 是一个列表,其中包含对投影的评估
expression 来触发每个 Map 条目。
Spring 表达式语言还支持集合投影的安全导航。 有关详细信息,请参阅 Safe Collection Selection and Projection 。 |