(Java) Lambda使っていい感じにMapとかClass生成できるやつ書いた

MapとかPOJO作るのに疲弊してきた

疲弊しすぎて、イライラして書いた。

https://github.com/be-hase/lamtils

Lambda使ってこんな感じで、さっくりと作れる。

例) HashMap :

Map<String, Object> map = Lamtils.newHashMap(
    one -> "one",
    two -> 2,
    three -> new Date(),
    four -> 4.0
);

よっしゃ!なんかLL言語っぽい感じになったぞ!

例) POJO(JavaBeans) : setter実装していないと駄目

public static class TestPojo {
    private String one;
    private int two;
    private Date three;
    private double four;
    private boolean five;
    
    // setter, getterは省略 
}

TestPojo pojo1 = Lamtils.newClass(
    TestPojo.class,
    one -> "one",
    two -> 2,
    three -> now,
    four -> 4.0,
    five -> true
);

// もちろん指定したやつだけセットできる
TestPojo pojo2 = Lamtils.newClass(
    TestPojo.class,
    one -> "one"
);

よっしゃ!なんかGroovyとかScalaのあれっぽくなったぞ!
でもTestPojo.classって指定するのがダルい。 本気でやるならlombokみたいにしたい。

注意(重要)

結論

冷静に頭を冷やした結果、これからもGuavaのImmutableMap.of(...)とか、lombokの@Builderとか@Accessorsのfluentとか使って頑張る。

でも、こういう記法ができるってのはなんだか可能性を感じた。
なんか他にも応用できるといいなぁ。