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

Статический метод в ссылке на метод в Java

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

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

import java.util.function.Predicate; class Post { String title; Post(String title) { this.title = title; } static boolean isShortTitle(String text) { return text.length() < 20; } } public class Main { public static void main(String[] args) { Predicate<String> check = Post::isShortTitle; System.out.println(check.test("News")); System.out.println(check.test("Long headline for article")); } }

Тот же приём работает со стандартными классами. Метод Integer.parseInt подходит для Function<String, Integer> как Integer::parseInt.

В классе Article объявите статический метод isBlank, который возвращает true для пустой строки. Проверьте строки "" и "text" отложенным вызовом этого метода. Выведите оба результата.

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