系列选择
选择是一项功能强大的表达式语言功能,可让您将 通过从其条目中选择,将 source 集合添加到另一个集合中。
选择使用.?[selectionExpression]
.它过滤集合和
返回一个包含原始元素子集的新集合。例如
选择让我们可以轻松获得塞尔维亚发明人名单,如以下示例所示:
-
Java
-
Kotlin
List<Inventor> list = (List<Inventor>) parser.parseExpression(
"members.?[nationality == 'Serbian']").getValue(societyContext);
val list = parser.parseExpression(
"members.?[nationality == 'Serbian']").getValue(societyContext) as List<Inventor>
数组和任何实现java.lang.Iterable
或java.util.Map
.对于数组或Iterable
,则对选择表达式进行求值
针对每个单独的元素。针对地图,计算选择表达式
针对每个映射条目(Java 类型的对象Map.Entry
).每个地图条目都有其key
和value
可作为属性访问,以便在选择中使用。
给定一个Map
存储在名为#map
,则以下表达式返回一个新的
map 由原始 map 中条目值较小的元素组成
比 27:
-
Java
-
Kotlin
Map newMap = parser.parseExpression("#map.?[value < 27]").getValue(Map.class);
val newMap = parser.parseExpression("#map.?[value < 27]").getValue() as Map
除了返回所有选定元素外,还可以仅检索第一个或
最后一个元素。要获得与选择表达式匹配的第一个元素,请
语法是.^[selectionExpression]
.获取与选择匹配的最后一个元素
expression,语法为.$[selectionExpression]
.
Spring 表达式语言还支持安全导航以选择集合。 有关详细信息,请参阅安全集合选择和投影。 |