Easymethod-referencejava8
Что такое Method Reference?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Method reference — краткая форма лямбды, когда она просто вызывает существующий метод. s -> s.length() эквивалентно String::length.
// 1. Static method
BinaryOperator<Integer> max = Math::max; // (a, b) -> Math.max(a, b)
// 2. Instance method конкретного объекта
Consumer<String> printer = System.out::println; // x -> System.out.println(x)
// 3. Instance method произвольного объекта (первый параметр — receiver)
Function<String, Integer> len = String::length; // s -> s.length()
// 4. Constructor
Supplier<ArrayList<String>> factory = ArrayList::new; // () -> new ArrayList<>()Работает, когда сигнатура совпадает с functional interface. Часто используется со Stream: .map(String::toUpperCase), .forEach(System.out::println). Не всегда короче лямбды.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.