集合投影

投影允許集合驅動子運算式的評估,結果會是一個新的集合。投影的語法是 .![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.Iterablejava.util.Map 的事物都支援投影。當使用映射來驅動投影時,會針對映射中的每個條目(表示為 Java Map.Entry)評估投影運算式。跨映射的投影結果是一個列表,其中包含針對每個映射條目的投影運算式的評估結果。

Spring 運算式語言也支援集合投影的安全導航。

詳細資訊請參閱 安全集合選擇和投影