Почему Java предоставляет возможность объявлять интерфейс внутри интерфейса

Я пытаюсь использовать другую комбинацию внутренних классов. Интересно, что java дает вам возможность писать интерфейс внутри интерфейса. Это не дает мне никакой ошибки времени компиляции. Может ли кто-нибудь сказать мне, что это такое?

public interface IA {

    public interface IB{

    }
}

Ответ 1

Это позволяет помещать вспомогательный интерфейс в пространство имен, которое может иметь больше смысла, чем другой пакет. Хорошим примером этого из Java API является Map.Entry интерфейс. Entry действительно имеет смысл в контексте чего-то реализует интерфейс Map, поэтому он определяется как интерфейс внутри интерфейса.

Обратите внимание, что кроме внутренних классов внутренние интерфейсы всегда статичны, поскольку Джесси Глик упоминает в его ответ на связанные вопросы.