local class
いまさら Java のブロックローカルなクラスは無名でなくてもいいことを知った。おおよそ 10 年もつかっているのに!
public class Foo { public static void main(String[] args) { Int[] ints = new Int[] { func(1), func2(2), func3(3) }; for (int i = 0; i < ints.length; i++) { System.out.println( ints[i].getClass().getName() + " " + ints[i].intValue() ); } } private static Int func(final int n) { class Inner implements Int { public int intValue() { return n; } } return new Inner(); } private static Int func2(final int n) { class Inner implements Int { public int intValue() { return n; } } return new Inner(); } private static Int func3(final int n) { return new Int() { public int intValue() { return n; } }; } } interface Int { int intValue(); }