2011-11-15 22 views
9

pregunta anal aquí: tenemos enumeraciones de Java que son sus propias clases y enumeraciones que son miembros de una clase:¿Deberían los tipos de enum del miembro de Java estar en mayúscula?

public enum reportType { ... 

Cada vez que veo esto se sacude mí * porque cuando lo veo utiliza en una declaración , es un tipo y los tipos deben escribirse en mayúscula. Pero cuando trato de capitalizarlo, Eclipse me advierte que no debería capitalizar los nombres de los campos. Me imagino que Eclipse probablemente conoce las convenciones oficiales de Java mejor que yo, pero simplemente no parece correcto. Incluso revisó el documento de convenciones de Java, pero no vio este problema al que se hizo referencia.

  • sin juego de palabras
+1

Parece que tiene algunas advertencias de estilo Eclipse no estándar. Yo uso eclipse y no tengo este problema. ¿Has verificado tus preferencias? –

+0

posible duplicado de [Convenciones de codificación - Nombrar enumeraciones] (http://stackoverflow.com/questions/3069743/coding-conventions-naming-enums) – Woot4Moo

+0

Estoy en el mismo contenedor que usted: siempre use mayúsculas y minúsculas en los tipos. Pero no puedo hacer referencia a nada que diga que eso es "correcto" de alguna manera. –

Respuesta

10

Si son su propio inicio de la clase, con mayúsculas, si son miembros minúsculas.

public enum ReportType { XML, TEXT, HTML }; 

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

@HovercraftFullOfEels Declaración de miembro frente a la declaración de clase enum. _public enum ReportType_ como clase versus _ReportType defaultReport; _ como miembro, respuesta modificada. –

+0

OK, gracias, entiendo lo que quieres decir. Borrando mi comentario inicial –

+0

... y votando por ti 1+ –

2

En Java, los nombres de (no primitivos) tipos se escriben normalmente en PascalCase. Desde un enum (como class) define un tipo, es habitual que escribirlos también en PascalCase:

enum MyEnumInPascalCase { ... } 
+0

La mayoría de las veces esto se conoce como CamelCase (debido a los baches). –

+2

camelCase vs PascalCase (observe la diferencia en la primera letra) - http://msdn.microsoft.com/en-us/library/x2dbyw72(v=vs.71).aspx –

12

enumeraciones son un tipo de enumeración y el nombre debe comenzar con mayúscula. Los miembros de Enum son constantes y su texto debe ser mayúscula.

+4

¿puedo decir cuánto me gusta su ¿nombre? Aunque SO no me deja @ por alguna razón ... – orbfish

4

¿Seguro que está utilizando la configuración predeterminada? Porque generalmente las enumeraciones están en mayúsculas. Las variables que contienen valores enum deben no comienzan con un límite.

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

private State state; 

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

Es posible utilizar las importaciones estáticas para deshacerse de la parte State. también, aunque en general, creo que es mejor dejarlo estar. Los valores enum son constantes y deben estar en MAYÚSCULAS. He visto gente cambiar campos en constantes de enum durante el tiempo de ejecución, y eso no es lo que quieres (excepto la instanciación lenta en la propia clase de vez en cuando).

4

Incluso hojeó el documento de convenciones de Java, pero no vio este problema al que se hace referencia.

El documento de convenciones de Java no se ha actualizado en más de 10 años. Básicamente desde Java 1.1.

+1

Cierto. Eso realmente ayuda, gracias. – orbfish

Cuestiones relacionadas