Да, мы можем это сделать. Определение вложенного интерфейса в Java следующее:
Вложенный интерфейс - это любой интерфейс, объявление которого происходит в теле другого класса или интерфейса. Интерфейс верхнего уровня - это интерфейс, который не является вложенным.
Подробнее см. .
Далее ...
Одной из причин может быть то, что внешний интерфейс имеет метод, который принимает реализацию обратного вызова в качестве аргумента. В этом случае вложенный интерфейс - это контракт, который должен реализовать метод обратного вызова. Я не вижу смысла объявлять этот интерфейс обратного вызова на верхнем уровне.
public interface Processor {
void execute(NotificationListener listener);
interface NotificationListener {
void processingCompleted();
}
}
Еще одно хорошее прочтение на сайте Sun по этой теме: здесь
В частности, обратите внимание, что при реализации интерфейса вы
не требуется для реализации каких-либо
интерфейсы, вложенные в.