枚举类型
关键字enum可以将一组具有的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用.这是一种非常有用的功能
- 调用enum的values()方法,可以遍历enum实例.values()方法返回enum实例的数组(在API上我没有找到)
19.2向enum中添加新方法
- 除了不能继承自一个enum之外,我们基本上可以将enum看作一个常规的类.enum甚至可以有main()方法
enum Explore{HERE,THERE}
//上面enum的clss文件经过反编译的输出javap Explore
Compiled from "Reflection.java"
final class zhuofai.demo19_4.Explore extends java.lang.Enum<zhuofai.demo19_4.Explore> {
public static final zhuofai.demo19_4.Explore HERE;
public static final zhuofai.demo19_4.Explore THERE;
public static zhuofai.demo19_4.Explore[] values();
public static zhuofai.demo19_4.Explore valueOf(java.lang.String);
static {};
}
- Enum类没有values()方法.答案是:values()是由编译器添加的static方法,可以看出,在创建Explore的过程中,编译器还为其添加了valueOf()方法.令人迷惑的是Enum类已经由valueOf()方法,不过Enum中的valueOf()方法需要两个参数,这个需要一个参数.
- 还能看出来,编译器将Explore标记为final类,使用无法继承自enum.其中还有一个static{}初始化子句.
- 涛哥说枚举不重要不用看,然后果断不想看了……到后面用的时候再补好了