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

Параметры лямбда-выражения в Java

Параметры лямбды повторяют сигнатуру абстрактного метода интерфейса. Если параметр один и тип выводится из контекста, скобки и тип можно опустить. Контракт с одним аргументом объявляют так:

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

Короткая запись без типа и без скобок:

TitleRule shortForm = title -> !title.isBlank();

Полная форма с типом полезна, когда вывод типов неочевиден:

TitleRule explicit = (String title) -> !title.isBlank();

Для двух параметров скобки обязательны. Контракт сравнения двух заголовков и лямбда к нему:

@FunctionalInterface interface TitlePairRule { boolean ok(String left, String right); } TitlePairRule sameLength = (left, right) -> left.length() == right.length();

Интерфейс без параметров требует пустые скобки слева от стрелки:

@FunctionalInterface interface DraftMode { boolean enabled(); } DraftMode alwaysOn = () -> true;

Объявите TitlePairRule и лямбду startsSame, которая сравнивает первые три символа двух строк (достаточно длинных). Проверьте пару "java" и "javascript".

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