Почему функциональный интерфейс selectDSLCompleter не содержит абстрактного метода?JAVA

Программисты JAVA общаются здесь
Гость
Почему функциональный интерфейс selectDSLCompleter не содержит абстрактного метода?

Сообщение Гость »


Насколько мне известно, функциональный интерфейс в Java должен иметь один (и только один) абстрактный метод. Однако интерфейс с именем selectDSLCompleter в org.mybatis.dynamic.sql.select не имеет абстрактного метода, но все равно работает нормально. интерфейс определен, как показано ниже:

пакет org.mybatis.dynamic.sql.select; импортировать java.util.function.Function; импортировать org.mybatis.dynamic.sql.SortSpecification; импортировать org.mybatis.dynamic.sql.util.Buildable; @FunctionalInterface общедоступный интерфейс SelectDSLCompleter расширяет Function { статический SelectDSLCompleter allRows(){ возврат (с) -> { вернуть с; }; } статический SelectDSLCompleter allRowsOrderedBy (SortSpecification... columns) { возврат (с) -> { вернуть c.orderBy(столбцы); }; } } и используется в этом примере: метод, определенный в картографе:

default List select (SelectDSLCompleter Completer) { return MyBatis3Utils.selectList(this::selectMany, selectList, person, Completer); } метод, вызываемый в службе:

List allRecords = mapper.select(c -> c); Я что-то пропустил?

Я искал вопрос, но ничего не нашел. Мне просто интересно, как это работает.

Вернуться в «JAVA»