1.创建一个最简单的枚举类型
创建枚举类型要使用enum关键字,隐含了所创建的类型都是java.lang.Enum类的子类,它是抽象类。其中,枚举类型符合通用模式 Class Enum<E extends Enum<E>>
,而 E
表示枚举类型的名称。枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal)
构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。
public enum Size{ SMALL, MEDIUM, LARGE; }
实际上调用了三次构造函数:
new Enum<Size>("SMALL",0);
new Enum<Size>("MEDIUM",1);
new Enum<Size>("LARGE",2);
2.创建一个复杂点的枚举类
public enum Size { SMALL("S","A"), MEDIUM("M","B"), LARGE("L","C"), EXTRA_LARGE("XL","D"); }
此时是无法通过编译器的。因为Size的每个成员附带额外的参数(类似带参数构造函数)
正确的做法是:增加带参数的构成函数
public enum SizeTest { SMALL("S","A"), MEDIUM("M","B"), LARGE("L","C"), EXTRA_LARGE("XL","D"); private SizeTest(String abbreviation,String symbol) {} }
参数类型确定,但是参数名可任意