以可读的方式使用枚举

use*_*212 2 java enums

如果我有以下静态

private static String STATURDAY = "Saturday";
Run Code Online (Sandbox Code Playgroud)

我可以用一种可读的方式使用它:

myMethod(SATURDAY);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,对于类型安全性,枚举更好.但是,如果我使用Enum,它的可读性会降低:

myMethod(Week.SATURDAY.toString());
Run Code Online (Sandbox Code Playgroud)

有没有办法以可读的方式使用枚举?

小智 8

使您的方法接收枚举值,而不是字符串:

myMethod(Week.SATURDAY);
Run Code Online (Sandbox Code Playgroud)

这应该是enum有用的原因,因为它通过使它们在枚举值中不同来避免所有无效的字符串值.

  • 换句话说:这使得它类型安全,因为你无法传递一个无效的值(一个不是枚举常量之一的值 - 除了`null`). (3认同)