是的,命名似乎有点长。但是没有想象中的那么多…
因为enum类已经给出了一些上下文( “这属于哪个常数集?” ), 所以实例名称通常比常数名称短 (强类型已与其他枚举中的相似命名实例区分开)。
另外,您可以 使用静态导入 来进一步减少长度。您不应在各处使用它,以免造成混淆,但我认为与枚举紧密关联的代码可以使用。
在枚举上的 开关中 ,您不使用类名。(在Java 7之前的Strings上甚至无法进行切换。)
在enum类本身中 ,使用短名称。
由于枚举有方法,因此许多会大量使用常量的低级代码可能会从业务代码迁移到枚举类本身(动态或静态方法)。如我们所见,将 代码迁移到枚举 可进一步减少长名称的使用。
常量通常按组进行处理,例如
if
用6个常量之一或其他四个常量进行相等性测试。枚举配EnumSets
有一种contains
方法(或类似的返回适当组的动态方法),使您可以 处理一个组作为一个组 (作为第二个优点,请注意,这两种实现分组的速度非常快-O(1)-内存很低!)。
综合以上几点, 我发现实际代码要短得多 !



