读书人

java语法食糖-枚举

发布时间: 2013-02-05 10:40:57 作者: rapoo

java语法糖---枚举

public enum Sex { MALE, FEMALE}

public final class Sex extends java.lang.Enum{ public static final Sex MALE; public static final Sex FEMALE; public static Sex[] values(); public static Sex valueOf(java.lang.String) static {};}

public final class Sex extends Enum{ public static Sex[] values() { return (Sex[])$VALUES.clone(); } public static Sex valueOf(String s) { return (Sex)Enum.valueOf(Sex, s); } private Sex(String s, int i) { super(s, i); } public static final Sex MALE; public static final Sex FEMALE; private static final Sex $VALUES[]; static { MALE = new Sex("MALE", 0); FEMALE = new Sex("FEMALE", 1); $VALUES = (new Sex[] { MALE, FEMALE }); }}

public enum Sex { MALE { public String toString() { return "我是男人"; } }, FEMALE { public String toString() { return "我是女人"; } };}

public class Sex extends Enum{ public static Sex[] values() { return (Sex[])$VALUES.clone(); } public static Sex valueOf(String s) { return (Sex)Enum.valueOf(Sex, s); } private Sex(String s, int i) { super(s, i); } public static void main(String args[]) { } public static final Sex MALE; public static final Sex FEMALE; private static final Sex $VALUES[]; static { MALE = new Sex("MALE", 0) { public String toString() { return "\u6211\u662F\u7537\u4EBA"; } }; FEMALE = new Sex("FEMALE", 1) { public String toString() { return "\u6211\u662F\u5973\u4EBA"; } }; $VALUES = (new Sex[] { MALE, FEMALE }); }}

?

?

???????? 跟上面生成的class文件差不多,只是在static块中两个枚举实例的初始化变成了匿名内部类(这也就是为什么会多了两个class文件的原因了,^_^),在每个匿名内部类都有一个toString方法。

读书人网 >编程

热点推荐