2010年1月14日木曜日

Spring 3.0/SpEL

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]

あと、Groovy から、Elvis 演算子という三項演算子の短縮形を取り込んだらしい。
 null!=a ? a: b  a ?: b 
名前の由来はプレスリーの髪型とのこと。Groovy 界隈ではだいぶ前からあったらしいが、不勉強で知らなかった。

0 件のコメント:

コメントを投稿