Enumのabstract method
javaのEnumってabstract methodが書けるね。
こんなのだね。
public class Otameshi { public enum E { A { @Override void method() { System.out.println("A method"); } }, B { @Override void method() { System.out.println("B method"); } }; abstract void method(); } public static void main(String[] args) { for (E e : E.values()) { e.method(); } } }
で、なんとなく気になってクラスファイルを覗いたら案の定クラスがEnum宣言分増えてたよ。
つまり、
public class Otameshi { public enum E { A { @Override void method() { System.out.println("A method"); } }, B { @Override void method() { System.out.println("B method"); } }; abstract void method(); } public static void main(String[] args) { for (E e : E.values()) { System.out.println(e.getClass()); } } }
ってやると
class Otameshi$E$1
class Otameshi$E$2
ってなる。