我正在学习Java中的枚举类型。似乎可以通过集合、字符串数组或用户自定义类型来实现与枚举相同的功能。
那么,引入Java 5中枚举类型的主要目的是什么?
优点 -
它用于 由一组固定常量组成的字段。
例如:Thread.State
public enum State {
NEW,
RUNNABLE,
WAITING,
BLOCKED,
...
}
或者 private enum Alignment { LEFT, RIGHT };
你可以使用 Enum
限制输入参数,例如 -
String drawCellValue (int maxCellLnghth, String cellVal, Alignment align){}
这里的align
参数只能是Alignment.LEFT
或Alignment.RIGHT
,很受限制。
enum
与switch-case的示例:
String drawCellValue (int maxCellLnghth, String cellVal, Alignment align){
switch (align) {
case LEFT:...
case RIGHT: ...
}
...
}
其中之一的用途是作为一种模拟字符串类型变量上的switch
的方法,因为在Java 7之前是不允许这样做的。