2012-04-21 62 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它使代碼更具可讀性。