2

使用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

4

2 回答 2

5

一个重要的原因是,对于enum,您知道值是TRUEor FALSE;不可能是别的。但是String罐子根本没有任何价值,所以你必须检查一下。这使得代码既简单又容易理解。

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

于 2012-04-21T03:52:57.650 回答
2

解释为什么你应该使用枚举:

  • 枚举是强类型的
  • 比较枚举更快,您可以==使用equals()
  • 枚举可以实现接口、方法和函数。例如各种公制系统的枚举Metric.EUCLID.distance(Point a, Point b));
  • 有很多开箱即用的便捷方法-MyEnum[] all = MyEnum.values(); MyEnum.valueOf("ENUM_NAME");
  • 从 Java 5 开始,您可以在 switch 语句中使用它们,从 Java 7 开始,您可以在 String 中使用它们。
  • IMO 它使代码更具可读性。
于 2012-04-21T07:30:06.230 回答