Os tipos de enumeração de membros Java devem ser capitalizados?

Pergunta anal aqui: temos enums Java que são suas próprias classs e enums que são membros de uma class:

public enum reportType { ... 

Toda vez que vejo isso, isso me chateia * porque quando eu o vejo usado em uma declaração, é um tipo e os tipos devem ser capitalizados. Mas quando tento capitalizar isso, o Eclipse me avisa que não devo capitalizar nomes de campo. Eu acho que o Eclipse provavelmente conhece as convenções oficiais de Java melhor do que eu, mas isso não parece certo. Mesmo folheou o documento de convenções Java, mas não viu esse problema referenciado.

  • sem trocadilhos

Se eles são de sua própria class começar com maiúsculas, se eles são membros em minúsculas.

 public enum ReportType { XML, TEXT, HTML }; public class MyClass { ReportType defaultReport = ReportType.XML; } 

Enums são um tipo e o nome do enum deve começar com um capital. Os membros Enum são constantes e seu texto deve ser todo em maiúsculas.

Tem certeza de que está usando as configurações padrão? Porque geralmente enums são realmente capitalizados. As variables ​​que contêm valores enum não devem começar com um limite.

 public enum State { UNINITIALIZED, INITIALIZED, STARTED, ; } private State state; private void start() { state = State.UNINITIALIZED; ... } `. 

Você pode usar importações estáticas para se livrar do State. parte também, embora geralmente eu acho que é melhor deixá-lo ser. Os valores enum são constantes e devem estar no CAPS. Eu vi pessoas alterar campos em constantes de enum durante o tempo de execução, e isso não é o que você quer (exceto por instanciação lenta dentro da própria class agora e depois).

Mesmo folheou o documento de convenções Java, mas não viu esse problema referenciado.

O documento de convenções do Java não foi atualizado em mais de 10 anos. Basicamente desde o Java 1.1.

Em Java, nomes de tipos (não-primitivos) são geralmente escritos em PascalCase . Como um enum (como uma class ) define um tipo, é comum escrevê-los também no PascalCase :

 enum MyEnumInPascalCase { ... }