2011-11-15 24 views
9

câu hỏi Anal ở đây: chúng tôi có enums Java mà các lớp học riêng của họ, và sự đếm mà là thành viên của một lớp:Các loại enum thành viên Java có nên được viết hoa không?

public enum reportType { ... 

Mỗi lần tôi thấy điều này nó lọ tôi * vì khi tôi nhìn thấy nó được sử dụng trong một bản tuyên bố , đó là một loại và các loại phải được viết hoa. Nhưng khi tôi cố gắng tận dụng nó, Eclipse cảnh báo tôi rằng tôi không nên tận dụng các tên trường. Tôi hình Eclipse có thể biết các quy ước Java chính thức tốt hơn tôi, nhưng nó dường như không đúng. Ngay cả khi lướt qua các quy ước của Java, nhưng không thấy vấn đề này được tham chiếu.

  • không ý định chơi chữ
+1

Có vẻ như bạn có một số cảnh báo kiểu Eclipse không chuẩn. Tôi sử dụng nhật thực và không có vấn đề này. Bạn đã kiểm tra tùy chọn của mình chưa? –

+0

có thể trùng lặp của [Quy ước mã hóa - Đặt tên cho các Enums] (http://stackoverflow.com/questions/3069743/coding-conventions-naming-enums) – Woot4Moo

+0

Tôi đang ở trong cùng một lọ với bạn - luôn luôn tận dụng các loại. Nhưng tôi không thể tham khảo bất cứ điều gì nói rằng đó là "chính xác" trong một số cách. –

Trả lời

10

Nếu họ bắt đầu lớp học riêng của họ với trường hợp trên, nếu họ là thành viên chữ thường.

public enum ReportType { XML, TEXT, HTML }; 

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

@HovercraftFullOfEels Tuyên bố thành viên so với khai báo lớp enum. _public enum ReportType_ như là một lớp so với _ReportType defaultReport; _ là một thành viên, câu trả lời sửa đổi. –

+0

OK, cảm ơn, tôi hiểu ý của bạn là gì. Đang xóa nhận xét ban đầu của tôi. –

+0

... và bỏ phiếu cho bạn 1+ –

2

Trong Java, tên (không nguyên thủy) loại thường được viết trong PascalCase. Kể từ khi một enum (như là một class) định nghĩa một loại, nó là bình thường để viết cho họ cũng ở PascalCase:

enum MyEnumInPascalCase { ... } 
+0

Hầu hết thời gian này được gọi là CamelCase (vì các va chạm). –

+2

camelCase vs PascalCase (chú ý sự khác biệt trong chữ cái đầu tiên) - http://msdn.microsoft.com/en-us/library/x2dbyw72(v=vs.71).aspx –

12

Enums là một loại và tên enum nên bắt đầu với số vốn. Enum thành viên là hằng số và văn bản của họ nên được tất cả các chữ hoa.

+4

Tôi có thể nói số tiền tôi thích của bạn Tên? Mặc dù SO sẽ không cho tôi @ nó vì một lý do nào đó ... – orbfish

4

Bạn có chắc chắn đang sử dụng cài đặt mặc định không? Bởi vì thường enums thực sự là vốn. Các biến chứa giá trị enum nên không phải bắt đầu bằng giới hạn.

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

private State state; 

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

Bạn cũng có thể sử dụng nhập tĩnh để loại bỏ phần State., mặc dù nói chung tôi nghĩ tốt hơn là để nguyên. Các giá trị enum là hằng số và phải ở trong CAPS. Tôi đã thấy mọi người thay đổi các lĩnh vực trong hằng số enum trong thời gian chạy, và đó không phải là những gì bạn muốn (ngoại trừ instantiation lười biếng trong lớp chính nó bây giờ và sau đó).

4

Thậm chí lật qua quy ước Java, nhưng không thấy vấn đề này được tham chiếu.

Tài liệu quy ước Java chưa được cập nhật trong hơn 10 năm. Về cơ bản kể từ Java 1.1.

+1

Đúng vậy. Điều đó thực sự giúp, cảm ơn. – orbfish

Các vấn đề liên quan