UNLIMITED JAVA

WEB技術や普段の生活のブログ

Javaからラムダ式をちょっと使えるライブラリ「Carmilla」

Javaからラムダ式を使うすごくいい方法を思いついたので、
突貫で作ってGitHubで公開してみました。


https://github.com/h-takenori/Carmilla


リストにStringでRubyスクリプトを渡すと良きに計らってくれます。
まずRubyのselect/collect/sort/groupByを呼べるようにしてみました。


内部ではRubyメソッドを読んでブロックでEvalしてます。



使い方

//テストデータ
List<Rectangle>list = createTestList();
        
//collectしてsortしてselectする
List<Point> list2 =  
    Carmilla  
        .collect( _list, Point.class, "Point.new(a.width, a.height )" )  
        .sort( "b.y <=> a.y" )  
        .select( "a.x == 11" )  
        .getList();  
        
        
//collectしてsortしてselectしてgroupbyする  
Map<Integer, List<Point>> map3 =  
    Carmilla  
        .collect( _list, Point.class, "Point.new(a.width, a.height )" )  
        .sort( "b.y <=> a.y" )  
        .select( "a.x == 11" )  
        .groupByE( "a.x" );