Apache 的枚举和JDK的枚举的优缺点和区别
在Apache的不同枚举类中,针对Apache中枚举的一些获取枚举类型和获取枚举集合或者Map的方法,不幸的是,Java的限制,要求这些被编码在每个子所示。一种方案在每一个中写这些方法。
一种实现方案就是在使用时调用EnumUtils获取。
Apache的枚举类可以继承: 一个枚举类的层次结构可以建立。在这种情况下,超类是不受外的子类(按正常的Java)。子类可以增加对超类型的附加枚举常量。在子类的查询方法将返回枚举常量的所有超类和子类。
但是JDK的枚举类就不可以继承。JDK的枚举不仅是一个超类而且是一个标准枚举类型。
JDK标准枚举不支持扩展,所以JDK的枚举方法在Apache的枚举中不可使用。
一般人应使用标准的枚举。从commons-lang枚举转换到标准并不容易,因为Apache Enum可能是由于缺乏枚举类标准的传承。
JDK枚举它不可能提供一个'超级枚举'可以提供同样的实用方法。
共同点:
在获取枚举类型的一些方法上这点在Commons-lang一样。
页:
[1]