class OuterClass {
class InnerClass {
static int i = 100; // compile error
static void f() { } // compile error
}
}
Хотя невозможно получить доступ к статическому полю с помощью OuterClass.InnerClass.i
, если я хочу записать что-то, что должно быть статическим, например. число созданных объектов InnerClass, было бы полезно сделать это поле статическим. Итак, почему Java запрещает статические поля/методы во внутренних классах?
EDIT: я знаю, как сделать компилятор счастливым со статическим вложенным классом (или статическим внутренним классом), но я хочу знать, почему Java запрещает статические поля/методы внутри внутренних классов (или обычного внутреннего класса) как из языка и аспектов реализации, если кто-то знает об этом больше.