Enum的Java优势

时间:2012-04-21 03:50:51

标签: java enums

使用Enum类比较某些内容有什么好处。有什么缺点:

public static final String TRUE = "true";
public static final String FALSE = "false";

public void method1(){

    if(TRUE.equals(inputString)){
        //do some logic
    }
    else if(FALSE.equals(inputString)){
        //do some other logic
    }
}

为什么建议在示例中使用Enum而不是String

2 个答案:

答案 0 :(得分:5)

一个重要原因是使用enum,您知道值为TRUEFALSE;它不可能是别的。但是String可以有任何价值,所以你必须检查它。这使代码更简单,更容易理解。

另一个原因是您可以将enum元素与==进行比较,但您必须使用相对较慢的equals()调用来比较String个对象。

答案 1 :(得分:2)

说明你应该使用枚举的原因:

  • 枚举强类型
  • 比较枚举更快,您可以使用==代替equals()
  • 枚举可以实现接口,方法和功能。例如各种指标系统的枚举Metric.EUCLID.distance(Point a, Point b));
  • 开箱即用的一系列便利方法 - MyEnum[] all = MyEnum.values(); MyEnum.valueOf("ENUM_NAME");
  • 您可以在Java 5以来的switch语句中使用它们,自Java 7以来的字符串。
  • IMO它使代码更具可读性。