编码约定 \- 命名枚举

新手上路,请多包涵

Java 中是否有命名枚举的约定?

我的偏好是枚举是一种类型。所以,例如,你有一个枚举

Fruit{Apple,Orange,Banana,Pear, ... }

NetworkConnectionType{LAN,Data_3g,Data_4g, ... }

我反对命名它:

 FruitEnum
NetworkConnectionTypeEnum

我知道很容易挑选出哪些文件是枚举,但你也会有:

 NetworkConnectionClass
FruitClass

另外,是否有一份很好的文档描述常量,在哪里声明它们等?

原文由 Walter White 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 358
2 个回答

枚举是类,应该遵循类的约定。枚举的实例是常量,应遵循常量约定。所以

enum Fruit {APPLE, ORANGE, BANANA, PEAR};

没有理由写 FruitEnum 超过 FruitClass 。您只是在浪费四个(或五个)不添加任何信息的字符。

The Java™ Tutorial 的 示例本身推荐并使用了这种方法。

原文由 DJClayworth 发布,翻译遵循 CC BY-SA 4.0 许可协议

这可能不会让我结交很多新朋友,但应该补充一点,C# 人员有不同的准则:枚举实例是“Pascal 大小写”(大写/小写混合)。请参阅 stackoverflow 讨论MSDN 枚举类型命名指南

当我们与 C# 系统交换数据时,我很想完全复制它们的枚举,而忽略 Java 的“常量具有大写名称”约定。考虑一下,我认为将枚举实例限制为大写没有多大价值。出于某些目的,.name() 是获取枚举常量的可读表示形式的便捷快捷方式,混合大小写的名称看起来会更好。

所以,是的,我敢质疑 Java 枚举命名约定的价值。 “编程世界的另一半”确实使用了不同的风格这一事实让我认为怀疑我们自己的宗教信仰是合理的。

原文由 StaticNoiseLog 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题