集合投影
投影允許集合驅動子運算式的評估,結果會是一個新的集合。投影的語法是 .![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
的事物都支援投影。當使用映射來驅動投影時,會針對映射中的每個條目(表示為 Java Map.Entry
)評估投影運算式。跨映射的投影結果是一個列表,其中包含針對每個映射條目的投影運算式的評估結果。
Spring 運算式語言也支援集合投影的安全導航。 詳細資訊請參閱 安全集合選擇和投影。 |