Сегодня я обнаружил, что кодирую что-то вроде этого ...
public class LocalEnums {
public LocalEnums() {
}
public void foo() {
enum LocalEnum {
A,B,C
};
// ....
// class LocalClass { }
}
}
и я был немного удивлен, когда компилятор сообщил об ошибке на локальном enum
:
Член enum LocalEnum не может быть
местный
Почему перечисления не могут быть объявлены локальными, как классы ?
Я нашел это очень полезным в определенных ситуациях. В случае, когда я работал, остальной код не должен был ничего знать о enum
.
Есть ли структурный / проектный конфликт, объясняющий, почему это невозможно, или это может быть future особенность Java?