2012-04-21 51 views
2

使用Enum类来比较某些东西有什么好处。什么是缺点:Enum的Java优势

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的例子吗?

回答

5

一个重要的原因是,与enum,你知道值是TRUEFALSE;它不可能是其他任何东西。但String可以有任何价值,所以你必须检查。这使得代码既简单又易于理解。

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

+0

谢谢。你能否告诉我除了==比较之外是否还有其他任何ENUM使用? – Victor 2012-04-21 04:01:57

+2

与字符串不同,您也可以在switch语句中使用Enums(对于JRE <1.7)。 – Paul 2012-04-21 04:02:29

+1

枚举是对象。他们有方法。您可以添加自己的方法。您可以为您的枚举的特定实例定义自定义实现。 – emory 2012-04-21 04:29:11

2

Resons为什么你应该使用枚举:

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