跳到主要内容

集合投影

DeepSeek V3 中英对照 Collection Projection

投影(Projection)允许一个集合驱动子表达式的求值,结果是一个新的集合。投影的语法是 .![projectionExpression]。例如,假设我们有一个发明家列表,但我们想要他们出生城市的列表。实际上,我们希望为发明家列表中的每个条目求值 placeOfBirth.city。以下示例使用投影来实现这一点:

// evaluates to ["Smiljan", "Idvor"]
List placesOfBirth = parser.parseExpression("members.![placeOfBirth.city]")
.getValue(societyContext, List.class);
java

投影(Projection)支持数组以及任何实现了 java.lang.Iterablejava.util.Map 的对象。当使用映射(Map)来驱动投影时,投影表达式会针对映射中的每个条目(表示为 Java 的 Map.Entry)进行评估。对映射进行投影的结果是一个列表,该列表由投影表达式针对每个映射条目的评估结果组成。

备注

Spring 表达式语言还支持集合投影的安全导航。

详情请参阅 安全集合选择与投影