コレクションの射影

射影を使用すると、コレクションによって部分式の評価が実行され、その結果が新しいコレクションになります。射影の構文は .![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 式言語は、コレクション射影のための安全なナビゲーションもサポートしています。

詳細は安全なコレクションの選択と射影を参照してください。