2015-05-05 10 views
5

Vui lòng xem điều này link. Về Enums, ông Bloch nóiCác loại Enum được giải thích trong Java hiệu quả bởi Joshua Bloch

Loại enum của Java là các lớp xuất một cá thể cho mỗi hằng số điều tra thông qua trường cuối cùng tĩnh công cộng.

Tôi đọc tài liệu Enum Lớp nhưng đã có không public static lĩnh vực thức, sau đó như thế nào tuyên bố trên giữ đúng. Vui lòng giải thích. Cảm ơn

+2

Trình biên dịch tạo trường cuối cùng tĩnh công khai cho bạn. Hãy thử giải mã lớp bằng javap. –

Trả lời

13

Tạo một file Test.java và viết Test enum:

public enum Test { 
    Hello 
} 

biên dịch lớp này: javac Test.java, và sử dụng javap Test để có được những lớp biên soạn:

public final class Test extends java.lang.Enum{ 
    public static final Test Hello; 
    public static Test[] values(); 
    public static Test valueOf(java.lang.String); 
    static {}; 
} 

và bạn sẽ nhìn thấy lớp Test kéo dài từ Enum và có trường public static final Hello.

3

Enum là lớp cơ sở cho tất cả các enums. Nó không chứa hằng số. Những gì chứa hằng số là các lớp enum cụ thể. Xem ví dụ: documentation for the enum Locale.Category. Nó chứa các trường cuối cùng tĩnh công khai cho mỗi hằng số enum: DISPLAY và FORMAT.

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