Почему интерфейс может быть объявлен только в классе верхнего уровня?

Хорошо, я знаю, что это правило:

Согласно JLS: 8.1.3 Внутренние классы и закрывающие экземпляры, внутренние классы не могут объявлять статические инициализаторы или интерфейсы-члены. Внутренние классы не могут объявлять статические члены, если они не поля констант времени компиляции.

Согласно 8.5.2 Объявления типов статических элементов, «Интерфейсы элементов всегда неявно статичны. Это разрешено, но не требуется для объявление интерфейса-члена для явного перечисления статических модификатор ". Они всегда являются верхним уровнем, а не внутренним.

Мне просто интересно, почему. Что может случиться, если нам будет разрешено объявлять интерфейс внутри внутреннего класса? Не станет ли внутренний класс классом верхнего уровня, если я поставлю его в другой файл класса?

10
задан animuson 3 December 2011 в 03:31
поделиться