使用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
?
答案 0 :(得分:5)
一个重要原因是使用enum
,您知道值为TRUE
或FALSE
;它不可能是别的。但是String
可以有任何价值,所以你必须检查它。这使代码更简单,更容易理解。
另一个原因是您可以将enum
元素与==
进行比较,但您必须使用相对较慢的equals()
调用来比较String
个对象。
答案 1 :(得分:2)
说明你应该使用枚举的原因:
==
代替equals()
Metric.EUCLID.distance(Point a, Point b));
MyEnum[] all = MyEnum.values();
MyEnum.valueOf("ENUM_NAME");