< E extends Enum<E>>可以知道他的子类有泛型上限,只能是Enum或者Enum的子类。
2.相关函数
构造函数
1 2
protectedEnum(String name, int ordinal) //Sole constructor.唯一的构造函数
说明了Enum类还有两个数据成员name和ordinal
name和ordinal函数
1 2 3
String name() //Returns the name of this enum constant, exactly as declared in its enum declaration. //取得名字
1 2 3
intordinal() //Returns the ordinal of this enumeration constant (its position in its enum declaration, where the initial constant is assigned an ordinal of zero). //取得序号
这两个函数方法比较简单,直接展示用法以上面的枚举类Colour为例:
1 2 3 4 5 6 7 8 9
publicstaticvoidmain(String[] args){ Colour red = Colour.RED; Colour green = Colour.GREEN; Colour blue = Colour.BLUE; System.out.println(red.ordinal()+"-----------"+red.name()); System.out.println(green.ordinal()+"-----------"+green.name()); System.out.println(blue.ordinal()+"-----------"+blue.name()); }
输出的结果:
0—————-RED 1—————-GREEN 2—————-BLUE
values和valuesOf函数
1 2
static <T extends Enum<T>> T valueOf(Class<T> enumType, String name) //Returns the enum constant of the specified enum type with the specified name.
values其实是利用valuesOf而实现,下面展示具体用法:
values:
1 2 3 4 5 6
publicstaticvoidmain(String[] args){ for (Colour temp : Colour.values()) { System.out.println(temp.ordinal()+"-----------"+temp.name()); }
}
结果和上面一样,就不展示了。
valuesOf:
1 2 3 4 5
publicstaticvoidmain(String[] args){ Colour red = Colour.valueOf("RED"); System.out.println(red.ordinal()+"-----------"+red.name()); }