Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpLmFI 2 of 322 menu
◀ ▶

Функциональный интерфейс в Java

Функциональный интерфейс - интерфейс ровно с одним абстрактным методом. Его можно реализовать обычным классом, анонимным классом или лямбда-выражением. Методы default и static на «единственность» не влияют: абстрактным считается только метод без реализации.

Для модерации статей зададим контракт «проверить заголовок». Объявление интерфейса выглядит так:

interface TitleRule { boolean ok(String title); }

Аннотация @FunctionalInterface необязательна, но полезна: компилятор проверит, что абстрактный метод один. Пометим контракт явно:

@FunctionalInterface interface TitleRule { boolean ok(String title); }

Если добавить второй абстрактный метод, проект с аннотацией не соберётся. Реализацию через класс подключают словом implements, как у любого интерфейса:

class MinLengthRule implements TitleRule { private final int min; MinLengthRule(int min) { this.min = min; } @Override public boolean ok(String title) { return title.length() >= min; } }

Объявите @FunctionalInterface интерфейс TagRule с методом boolean allowed(String tag). Реализуйте его классом NotEmptyTagRule, который возвращает false для пустой строки и true для непустой.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить