Страницы

Поиск по вопросам

четверг, 11 октября 2018 г.

Что значит оператор ::?

Изучаю JavaFX. Столкнулся с оператором :: . Объясните, пожалуйста, что он значит. Пример:
public static LocalDate parse(String dateString) { try { return DATE_FORMATTER.parse(dateString, LocalDate::from); } catch (DateTimeParseException e) { return null; } }


Ответ

Это ссылка на метод, новая конструкция языка Java 8
Например:
public static void main(String[] args) { List list = Arrays.asList("str1", "str2", "str3"); list.forEach(System.out::print); }
Произойдет следующее: интерфейс List наследуется от Iterable, у которого есть метод forEach(Consumer action).
Consumer - функциональный интерфейс, с одним методом accept(T t), который принимает один параметр. В данном случае, consumer - метод print класса System.out, который принимает строку.
Функциональный интерфейс - интерфейс, который имеет только 1 абстрактный метод.

Комментариев нет:

Отправить комментарий