anonymous class特有のメソッド呼び出しの使い道
確かにきもいけど、
public final class Test { static interface Hoge {} public static void main(String[] args) { Hoge h = new Hoge() {{ System.out.println("init"); }}; } }
より、
public final class Test { static interface Hoge {} public static void main(String[] args) { Hoge h = new Hoge() { Hoge init() { System.out.println("init"); return this; } }.init(); } }
の方が分かりやすいかも。
ただのメソッドでしかないから、呼び忘れたら終わりだけど*1。
*1:final変数への代入も無理だな