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