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. Что такое лямбда-выражение? Чем его можно заменить?
Все вопросы по теме: список
Все темы: список
Вопросы/замечания/предложения/нашли ошибку:напишите мне