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

orb*_*ish 10 java eclipse enums coding-style naming-conventions

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

public enum reportType { ...
Run Code Online (Sandbox Code Playgroud)

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

  • 没有双关语意图

Hov*_*els 15

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

  • 我可以说我有多喜欢你的名字吗?虽然SO不会因为某些原因让我@它... (6认同)

Aar*_*ver 11

如果他们是自己的类,从大写开始,如果他们是成员小写.

public enum ReportType { XML, TEXT, HTML };

public class MyClass
{
     ReportType defaultReport = ReportType.XML; 
}
Run Code Online (Sandbox Code Playgroud)


Maa*_*wes 5

您确定使用的是默认设置吗?因为一般来说枚举确实是大写的。不过,保存枚举值的变量不应以上限开头。

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

private State state;

private void start() {
  state = State.UNINITIALIZED;
  ...
}
`.
Run Code Online (Sandbox Code Playgroud)

您也可以使用静态导入来删除该State.部分,尽管通常我认为最好保留它。枚举值是常量并且应该大写。我见过人们在运行时更改枚举常量中的字段,但这不是您想要的(除了类本身内部时不时的延迟实例化)。


Ste*_*n C 5

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

Java 约定文档已经 20 多年没有更新了。基本上从 Java 1.1 开始。