在java中使用enum有什么好处?

what is the advantage of using enum in java?

我正在通过Java中的枚举。枚举也可以通过集合、字符串数组或用户定义的类型来实现。在Java 5中引入枚举的主要目的是什么。

谢谢,塞纳萨


优点:

  • 看到不断的声明
  • restrict输入参数的方法
  • 可以在usable开关为例

它是用于consist领域一个固定的常数。

以冰Thread.State

1
2
3
4
5
6
7
public enum State {
    NEW,
    RUNNABLE,
    WAITING,
    BLOCKED,
    ...
}

private enum Alignment { LEFT, RIGHT };

你可以使用输入参数restrict Enum

1
String drawCellValue (int maxCellLnghth, String cellVal, Alignment align){}

在这里,在align参数可以是只读或Alignment.LEFTAlignment.RIGHT这冰的限制。

example of开关与Enum案例。

1
2
3
4
5
6
7
String drawCellValue (int maxCellLnghth, String cellVal, Alignment align){
    switch (align) {
    case LEFT:...
    case RIGHT: ...
    }
    ...
}


从认识你的Java的枚举

  • 类型安全。你可以用DECLARE A型参数,返回舱, 本地人或一个独立的变量和枚举类型 编译器将驻扎型安全;
  • 枚举是basically班。他们能得到实施的接口。 在线行为和SO。
  • 从枚举在Java的优势 你会得到免费的编译时间检查有效值。使用

    1
    2
    public static int OPTION_ONE = 0;
    public static int OPTION_TWO = 1;


    有一个形象的"枚举类型的安全模式"(如"书"的有效的Java版第一市",Joshua Bloch)。"枚举"《JAVA语言构建是一个支持(句法糖)对这种设计模式。


    一个信息的辨别是作为一种手段emulate A switch字符串型变量在Java 7以前一样这是不允许