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

Лямбда как параметр метода в Java

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

Сервис хранит заголовки и умеет отбирать их по правилу:

@FunctionalInterface interface TitleRule { boolean ok(String title); } class TitleStore { void printMatching(TitleRule rule) { String[] titles = {"api", "go", "java27"}; for (String title : titles) { if (rule.ok(title)) { System.out.println(title); } } } }

При вызове в метод передают лямбду - правило задаёт вызывающий код:

public class Main { public static void main(String[] args) { TitleStore store = new TitleStore(); store.printMatching(title -> title.length() >= 4); } }

Другое правило подставляется без правок TitleStore:

store.printMatching(title -> title.startsWith("j"));

Добавьте в TitleStore метод int countMatching(TitleRule rule), который считает подходящие заголовки. В main выведите число для правила «длина не меньше 3».

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