4. Что такое ссылка на метод?

4. Что такое ссылка на метод?

UNKNOWN

Ссылки на методы (Method References) – это компактные лямбда выражения для методов, у которых уже есть имя.

Ссылки на методы бывают четырех видов:

  • Ссылка на статический метод - ContainingClass::staticMethodName

Function<String, Boolean> function = e -> Boolean.valueOf(e);

System.out.println(function.apply(\"TRUE\"));

Function<String, Boolean> function = Boolean::valueOf;

System.out.println(function.apply(\"TRUE\"));

  • Ссылка на нестатический метод конкретного объекта - containingObject::instanceMethodName

Consumer<String> consumer = e -> System.out.println(e);

consumer.accept(\"OCPJP 8\");

Consumer<String> consumer = System.out::println;

consumer.accept(\"OCPJP 8\");

  • Ссылка на нестатический метод любого объекта конкретного типа

ContainingType::methodName

Function<String, String> function = s -> s.toLowerCase();

System.out.println(function.apply(\"OCPJP 8\"));

Function<String, String> function = String::toLowerCase;

System.out.println(function.apply(\"OCPJP 8\"));

  • Ссылка на конструктор ClassName::new

Function<String, Integer> function = (d) -> new Integer(d);

System.out.println(function.apply(\"4\"));

Function<String, Integer> function = Integer::new;

System.out.println(function.apply(\"4\"));


Предыдущий вопрос: 3. Какие встроенные функциональные интерфейсы вы знаете?

Следующий вопрос: 5. Что такое лямбда-выражение? Чем его можно заменить?

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку:напишите мне

Report Page