我正在浏览Java中的枚举。枚举可以做的事情可以通过集合或字符串数组或用户定义的类型来实现。在 Java 5 中引入枚举的主要目的是什么?
谢谢, Sehensaa
优点 -
它用于由一组固定常量组成的字段。
例子是Thread.State
public enum State {
NEW,
RUNNABLE,
WAITING,
BLOCKED,
...
}
或者private enum Alignment { LEFT, RIGHT };
Enum
您可以使用like-限制输入参数
String drawCellValue (int maxCellLnghth, String cellVal, Alignment align){}
这里的 align 参数可以是唯一的,Alignment.LEFT
也Alignment.RIGHT
可以是受限的。
enum
带有-的开关盒示例
String drawCellValue (int maxCellLnghth, String cellVal, Alignment align){
switch (align) {
case LEFT:...
case RIGHT: ...
}
...
}
从enum-in-java-advantages
您可以获得有效值的免费编译时检查。使用
public static int OPTION_ONE = 0;
public static int OPTION_TWO = 1;
看看“类型安全的枚举模式”(例如,在 Joshua Bloch 的“Effective Java”第一版一书中)。Java“枚举”结构是这种设计模式的语言级别支持(语法糖)。
它的一个用途是作为在 Java 7 之前模拟字符串类型变量的一种手段,switch
这是不允许的