Java 以可读的方式使用枚举
如果我有以下静态Java 以可读的方式使用枚举,java,enums,Java,Enums,如果我有以下静态 private static String STATURDAY = "Saturday"; 我可以以可读的方式使用它: myMethod(SATURDAY); 在这种情况下,为了类型安全性,枚举更好。但是,如果使用枚举,则可读性较差: myMethod(Week.SATURDAY.toString()); 有没有一种方法可以以可读的方式使用枚举?使您的方法接收枚举值,而不是字符串: myMethod(Week.SATURDAY); 这就是enum之所以有用的原因,因为它
private static String STATURDAY = "Saturday";
我可以以可读的方式使用它:
myMethod(SATURDAY);
在这种情况下,为了类型安全性,枚举更好。但是,如果使用枚举,则可读性较差:
myMethod(Week.SATURDAY.toString());
有没有一种方法可以以可读的方式使用枚举?使您的方法接收枚举值,而不是字符串:
myMethod(Week.SATURDAY);
这就是enum之所以有用的原因,因为它通过在enum值中区分所有无效字符串值来避免这些无效字符串值。除了像Kilanny所说的那样使方法接收
enum
值外,还可以使用import static
导入enum常量,使其看起来与使用字符串时完全相同:
import static com.mypackage.Week.*;
// ...
myMethod(SATURDAY);
该方法不能接受枚举作为参数,例如
myMethod(Week w)
?代码是供programmars阅读的,而不是供外行阅读。使用符合逻辑的任何东西。作为旁注,您知道这里的toString()
不会返回“星期六”,而是“星期六”,对吗?(除非您在enum声明中重写了toString()
,我对此表示怀疑)。因此,这并不完全等同于开始。当然,正如其他人所说,让您的方法接受枚举类型而不是字符串。换句话说:这使得它类型安全,因为您无法传递无效值(该值不是枚举常量之一——除了null
)。