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" );