集合選擇

選擇是一個強大的表示式語言特性,它允許您透過從集合的條目中進行選擇,將源集合轉換為另一個集合。

選擇使用 .?[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.Iterablejava.util.Map 的物件。對於陣列或 Iterable,選擇表示式針對每個單獨的元素進行評估。對於 Map,選擇表示式針對每個 Map 條目(Java 型別為 Map.Entry 的物件)進行評估。每個 Map 條目都有其 keyvalue 作為屬性可用於選擇。

給定儲存在名為 #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]。要獲取與選擇表示式匹配的最後一個元素,語法是 .$[selectionExpression]

Spring 表示式語言還支援集合選擇的安全導航。

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

© . This site is unofficial and not affiliated with VMware.