- Published on
Java编程思想读书笔记(六)第19章-枚举类型
- Authors
- Name
- Leon
19.4 values()的神秘之处
通过反编译枚举类,values()是由编译器添加的static()方法。编译器将枚举类(enum)标记为final类,所以enum类无法被继承。
19.5 实现而非继承
所有的enum类都继承自java.lang.Enum类。由于Java不支持多重继承,所以你的enum类不能再继其他类,然而,在我们创建一个新的enum时,可以同时实现一个或多个接口。
19.9 使用EnumMap
与EnumSet一样,enum实例定义时的次序决定了其在EnumMap中的顺序。 常量相关的方法(constant-specific methods)。 多路分发(multiple dispatching)。
19.10 常量相关的方法
通过相应的enum实例,我们可以调用其上的方法。这通常也称为表驱动的代码(table-driven code,请注意它与前面提到的命令模式的相似之处)。
19.10.1 使用enum的职责链
职责链(Chain of Responsibility)。
19.11.1 使用enum分发
一种方式是使用构造器来初始化每个enum实例,并以“一组”结果作为参数。这二者放在一块,形成了类似查询表的结构。
参考文献:
- 《Java编程思想(第4版)》——(美)Bruce Eckel 著 陈昊鹏 译