这里有一个问题:Java枚举有它们自己的类,也有作为类成员的枚举:
public enum reportType { ...
每次我看到这个都让我很不舒服,因为当我看到它在声明中使用时,它是一个类型,类型应该大写。但是当我试图大写它时,Eclipse警告我不应该大写字段名。我想Eclipse可能比我更了解官方的Java约定,但它似乎就是不对。甚至翻遍了Java约定文档,但没有看到这个问题被引用。
- 无双关语
枚举是一种类型,其名称应以大写字母开头。枚举成员是常量,它们的文本应该全大写。
如果是自己的类,则以大写开头,如果是成员,则以小写开头。
public enum ReportType { XML, TEXT, HTML };
public class MyClass
{
ReportType defaultReport = ReportType.XML;
}
您确定使用默认设置吗?因为通常枚举都是大写的。保存枚举值的变量不能以大写开头。
public enum State {
UNINITIALIZED,
INITIALIZED,
STARTED,
;
}
private State state;
private void start() {
state = State.UNINITIALIZED;
...
}
`.
您也可以使用静态导入来摆脱State.
部分,尽管通常我认为最好保留它。枚举值是常量,应该是大写的。我看到人们在运行时更改枚举常量中的字段,这不是你想要的(除了类本身的惰性实例化)。
甚至翻遍了Java约定文档,但没有看到这个问题。
Java约定文档已经有20多年没有更新了。基本上从Java 1.1开始。
在Java中,(非原语)类型的名称通常写成PascalCase。由于enum
(作为class
)定义了类型,因此通常也将它们写成PascalCase:
enum MyEnumInPascalCase { ... }