Spring 3.0 の SpEL のドキュメントを読んでみた。
Collection の扱いがちょっと面白い。集合の選択と射影がサポートされている。
サンプルに無かったので、プリミティブ型の配列でどうなるか試してみたら、入力としては OKだけど、出力で Integer[] に変換される様子。また Collection 操作をつなげることもできた。
public class App2 {
public static void print(Object result) {
System.out.println(Arrays.toString((Integer[])result));
}
public static void main(String[] args) {
ExpressionParser parser = new SpelExpressionParser();
Expression even = parser.parseExpression(
"#root.?[0 == #this % 2]");
Expression doub1e= parser.parseExpression(
"#root.![#this * 2].?[#this > 5]");
int[] ints = {1, 2, 3, 4};
print(even.getValue(ints));
print(doub1e.getValue(ints));
}
}こんな出力が出た
[2, 4]
[6, 8]
[6, 8]
あと、Groovy から、Elvis 演算子という三項演算子の短縮形を取り込んだらしい。
null!=a ? a: b → a ?: b
名前の由来はプレスリーの髪型とのこと。Groovy 界隈ではだいぶ前からあったらしいが、不勉強で知らなかった。
0 件のコメント:
コメントを投稿