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