|
对于最新稳定版本,请使用 Spring Framework 7.0.6! |
集合投影
投影(Projection)允许一个集合驱动子表达式的求值,其结果是一个新的集合。投影的语法是 .![projectionExpression]。例如,假设我们有一个发明者列表,但希望获取他们出生城市的列表。实际上,我们希望对发明者列表中的每个条目都求值 placeOfBirth.city。以下示例使用投影来实现这一目的:
-
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<*>
投影(Projection)支持数组以及任何实现了 java.lang.Iterable 或
java.util.Map 的对象。当使用 Map 来驱动投影时,投影表达式会针对 Map 中的每个条目(表示为 Java 的 Map.Entry)进行求值。对一个 Map 执行投影的结果是一个列表,其中包含针对每个 Map 条目求值投影表达式后得到的值。