Ho una classe enum che contiene una classe interna in Java.Le classi interne in enumerazione sono sempre statiche in Java?
Per esempio (Nel codice vero e proprio, ci sono alcuni metodi dichiarati sul enum che utilizzano internamente la classe interna):
public enum MyEnum{
VALUE_1,
VALUE_2;
private static class MyInnerClass // is static here needed or can it be removed?
{
}
}
PMD mi dice che il modificatore 'static' non è necessario (Violazione la regola UnusedModifier). È corretto o sarebbe un bug di PMD?
Nota: This question non è un duplicato, è l'inverso di ciò che chiedo qui.
Secondo JLS (http://docs.oracle.com/javase/specs/jls/se5.0/html/classes.html#8.9),"È un errore in fase di compilazione per tentare di creare un'istanza esplicita un tipo enum ". Quindi, direi che la statica è ridondante. – Tetramputechture
Il JLS si riferisce a qualcosa come 'new MyEnum()', non all'istanziazione di classi interne dichiarate all'interno del tipo enum. –