Сделать это частным enum статическим или нет?
В классе мне нужно определить разные действия, которые передаются в метод. Теперь все экземпляры могут безопасно обмениваться этими действиями, поэтому я подумал, что могу безопасно сделать enum static.
Но почти во всех примерах, которые я видел, вложенное перечисление никогда не статично. Итак, что является предпочтительным способом определения вложенного (частного) перечисления? Действительно ли имеет смысл не статично?
public class MyClass {
private static enum Action {
READ("read"),
WRITE("write");
final String value;
Action(String value) {
this.value = value;
}
String getValue() {
return value;
}
}
// attributes, methods, constructors and so on
}
Ответы
Ответ 1
Спецификация языка Java, раздел 8.9, гласит:
Вложенные типы перечислений неявно статичны. Разрешено явно объявлять вложенный тип enum статическим.
Итак, вы можете, но вам этого не нужно, и это не имеет значения. Лично я не думаю, что буду беспокоиться, поскольку это подразумевается в любом случае.
Ответ 2
Вложенные типы перечислений неявно статичны:)
Ответ 3
Если перечисление является членом класса, оно неявно статично