2011-11-15 13 views
9

domanda anale qui: abbiamo enumerazioni Java che sono loro proprie classi, e le enumerazioni che sono membri di una classe:I tipi di enum dei membri Java devono essere in maiuscolo?

public enum reportType { ... 

Ogni volta che vedo questo stona me *, perché quando lo vedo usato in una dichiarazione , è un tipo e i tipi devono essere in maiuscolo. Ma quando provo a capitalizzarlo, Eclipse mi avverte che non dovrei capitalizzare i nomi dei campi. Immagino che Eclipse probabilmente conosca le convenzioni ufficiali di Java meglio di me, ma non sembra giusto. Anche sfogliato il documento delle convenzioni Java, ma non ha visto questo problema referenziato.

  • no pun intended
+1

Sembra che tu abbia degli avvisi di stile Eclipse non standard. Uso eclipse e non ho questo problema. Hai controllato le tue preferenze? –

+0

possibile duplicato di [Convenzioni di codifica - Denominazione di enumerazioni] (http://stackoverflow.com/questions/3069743/coding-conventions-naming-enums) – Woot4Moo

+0

Sono nello stesso vaso di te - capitalizza sempre i tipi. Ma non posso fare riferimento a qualcosa che dice che è "corretto" in qualche modo. –

risposta

10

Se sono loro inizio classe con lettere maiuscole, se sono membri minuscole.

public enum ReportType { XML, TEXT, HTML }; 

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

@HovercraftFullOfEels Dichiarazione membro contro la dichiarazione della classe enum. _public enum ReportType_ come classe rispetto a _ReportType defaultReport; _ come membro, risposta modificata. –

+0

OK, grazie, capisco cosa intendevi. Cancellando il mio commento iniziale. –

+0

... e up-voting you 1+ –

2

In Java, i nomi di (non primitive) tipi sono scritti in PascalCase. Poiché un enum (come class) definisce un tipo, si è soliti scriverli anche in PascalCase:

enum MyEnumInPascalCase { ... } 
+0

La maggior parte delle volte si parla di CamelCase (a causa dei dossi). –

+2

camelCase vs PascalCase (notare la differenza nella prima lettera) - http://msdn.microsoft.com/en-us/library/x2dbyw72(v=vs.71).aspx –

12

Enums sono un tipo e il nome enum dovrebbe iniziare con un capitale. I membri di Enum sono costanti e il loro testo dovrebbe essere tutto maiuscolo.

+4

posso solo dire quanto mi piace il tuo nome? Anche se SO non me lo consente per qualche motivo ... – orbfish

4

Sei sicuro di utilizzare le impostazioni predefinite? Perché generalmente le enumerazioni sono davvero in maiuscolo. Le variabili che contengono i valori enum dovrebbero non iniziare con un limite.

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

private State state; 

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

È possibile utilizzare le importazioni statiche per sbarazzarsi della parte State. pure, anche se in generale penso che sia meglio lasciare che sia. I valori enum sono costanti e dovrebbero essere in CAPS. Ho visto persone cambiare campi in costanti enum durante il runtime, e questo non è quello che vuoi (tranne che per l'istanza pigra all'interno della classe stessa di tanto in tanto).

4

Anche sfogliato il documento di convenzioni Java, ma non ha visto questo problema riferimento.

Il documento di convenzioni Java non è stato aggiornato tra 10 anni. Fondamentalmente da Java 1.1.

+1

È vero. Questo aiuta davvero, grazie. – orbfish

Problemi correlati