2011-11-15 12 views
9

Anal pytanie tutaj: mamy stałe teksty w języku Java, które są ich własne klas, a teksty stałe, które są członkami klasy:Czy typy wyliczeniowe Java powinny być pisane wielkimi literami?

public enum reportType { ... 

każdym razem widzę to to konserwowe mnie * bo kiedy widzę, że stosowane w deklaracji , jest to typ, a typy powinny być pisane wielkimi literami. Ale kiedy próbuję ją wykorzystać, Eclipse ostrzega mnie, że nie należy zamieniać wielkich liter na nazwy pól. Wydaje mi się, że Eclipse prawdopodobnie zna oficjalne konwencje Java lepiej niż ja, ale to po prostu nie wydaje się właściwe. Nawet przejrzałem dokumentację dotyczącą konwencji Java, ale nie widziałem tego problemu.

  • gra słów nie przeznaczonych
+1

Wygląda na to, że masz niestandardowe ostrzeżenia w stylu Eclipse. Używam Eclipse i nie mam tego problemu. Czy sprawdziłeś swoje preferencje? –

+0

możliwy duplikat [Konwencje kodowania - Nazwy nazewnicze] (http://stackoverflow.com/questions/3069743/coding-conventions-naming-enums) – Woot4Moo

+0

Jestem w tym samym słoiku co ty - zawsze używaj wielkich liter. Ale nie mogę odwoływać się do niczego, co mówi, że jest "poprawne" w jakiś sposób. –

Odpowiedz

10

Jeśli są one ich własne początek klasy z wielkimi literami, jeżeli są członkami małymi literami.

public enum ReportType { XML, TEXT, HTML }; 

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

@HovercraftFullOfEels Deklaracja członkowska kontra deklaracja klasy enum. _public enum ReportType_ jako klasa versus _ReportType defaultReport; _ jako członek, zmodyfikowana odpowiedź. –

+0

OK, dziękuję, rozumiem, co miałeś na myśli. Usuwanie mojego początkowego komentarza. –

+0

... i do głosowania w górę 1+ –

2

W Javie, nazwy (non-prymitywnych) typów są zwykle napisane w PascalCase. Ponieważ enum (jako class) określa rodzaj, to zwykle napisać je również w PascalCase:

enum MyEnumInPascalCase { ... } 
+0

Przez większość czasu jest to określane jako CamelCase (z powodu uderzenia). –

+2

camelCase vs PascalCase (zauważ różnicę w pierwszym liście) - http://msdn.microsoft.com/en-us/library/x2dbyw72(v=vs.71).aspx –

12

wyliczenia to rodzaj i nazwę wyliczenia powinien zaczynać się od stolicy. Członkowie enum są stałymi, a ich tekst powinien być wielkimi literami.

+4

czy mogę tylko powiedzieć, jak bardzo podoba mi się twoje Nazwa? Chociaż SO nie pozwala mi z jakiegoś powodu ... – orbfish

4

Czy na pewno używasz ustawień domyślnych? Ponieważ generalnie wyliczenia są rzeczywiście skapitalizowane. Zmienne przechowujące wartości wyliczeniowe powinny być , a nie.

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

private State state; 

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

Można użyć importu statycznych pozbyć State. części, a także, choć generalnie myślę, że lepiej zostawić to. Wartości wyliczane są stałe i powinny być w CAPS. Widziałem, jak ludzie zmieniają pola w stałych enum podczas działania, i to nie jest to, czego chcesz (z wyjątkiem leniwych instancji w samej klasie od czasu do czasu).

4

Nawet przerzucono dokumentację dotyczącą konwencji Java, ale ten problem nie został wyświetlony.

Dokument z konwencjami Java nie został zaktualizowany za 10 lat. Zasadniczo od wersji Java 1.1.

+1

To prawda. To naprawdę pomaga, dzięki. – orbfish

Powiązane problemy