Java成员枚举类型是否应该大写?

时间:2011-11-15 22:20:51

标签: java eclipse coding-style enums naming-conventions

这里的肛门问题:我们有Java枚举,它们是自己的类,以及作为类成员的枚举:

public enum reportType { ...

每次我看到它都会刺激我*因为当我看到它在声明中使用时,它是一个类型,并且类型应该大写。但是当我试图利用它时,Eclipse警告我不应该将字段名称大写。我认为Eclipse可能比我更了解官方的Java约定,但它似乎并不正确。甚至翻阅了Java约定文档,但没有看到引用这个问题。

  • 没有双关语意图

5 个答案:

答案 0 :(得分:14)

枚举是一种类型,枚举名称应以大写字母开头。枚举成员是常量,他们的文本应该是全大写的。

答案 1 :(得分:11)

如果他们是自己的班级,则以大写字母开头,如果他们是小写成员。

public enum ReportType { XML, TEXT, HTML };

public class MyClass
{
     ReportType defaultReport = ReportType.XML; 
}

答案 2 :(得分:4)

您确定使用的是默认设置吗?因为通常枚举确实是大写的。保持枚举值的变量应该以限额开头。

public enum State {
  UNINITIALIZED,
  INITIALIZED,
  STARTED,
  ;
}

private State state;

private void start() {
  state = State.UNINITIALIZED;
  ...
}
`.

您也可以使用静态导入来摆脱State.部分,尽管通常我认为留下它是更好的方法。枚举值是常量,应该在CAPS中。我已经看到人们在运行时期间更改了枚举常量中的字段,这不是你想要的(除了类本身内的懒惰实例化)。

答案 3 :(得分:4)

  

甚至翻阅了Java约定文档,但没有看到引用此问题。

Java convention doc已在10年多时间内未更新。基本上自Java 1.1以来。

答案 4 :(得分:2)

在Java中,(非原始) 类型 的名称通常写在 PascalCase 中。由于enum(作为class)定义了一种类型,通常也会在 PascalCase 中编写它们:

enum MyEnumInPascalCase { ... }