集合投影
投影允許集合驅動子表示式的求值,結果是一個新的集合。投影的語法是 .![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<*>
投影支援陣列以及實現 java.lang.Iterable
或 java.util.Map
的任何型別。當使用 Map 進行投影時,投影表示式將針對 Map 中的每個條目(表示為 Java Map.Entry
)進行求值。對 Map 進行投影的結果是一個列表,該列表由針對每個 Map 條目求值投影表示式的結果組成。
Spring 表示式語言還支援集合投影的安全導航。 詳見安全的集合選擇和投影。 |