Tôi có một lớp enum có chứa một lớp bên trong trong Java.Các lớp bên trong trong enums luôn tĩnh trong Java?
Ví dụ (Trong đoạn mã thực tế, có một số phương pháp khai báo trên enum rằng trong nội bộ sử dụng các lớp bên trong):
public enum MyEnum{
VALUE_1,
VALUE_2;
private static class MyInnerClass // is static here needed or can it be removed?
{
}
}
PMD nói với tôi rằng những sửa đổi 'tĩnh' là không cần thiết (Vi phạm quy tắc UnusedModifier). Đây có phải là chính xác hoặc nó sẽ là một lỗi PMD?
Lưu ý: This question không trùng lặp, đó là nghịch đảo của những gì tôi hỏi tại đây.
Theo JLS (http://docs.oracle.com/javase/specs/jls/se5.0/html/classes.html#8.9),"Đó là lỗi biên dịch thời gian để cố gắng khởi tạo nhanh một loại enum ". Vì vậy, tôi sẽ đoán tĩnh là dư thừa. – Tetramputechture
JLS tham chiếu đến một cái gì đó như 'new MyEnum()', không để instantiating các lớp bên trong được khai báo bên trong kiểu enum. –