Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: Java, method reference, lambda, functional interface, syntax sugar

Что такое method reference?

Проверяет понимание method reference в Java как сокращенной формы записи лямбда-выражений для вызова существующих методов.

Короткий ответ

Method reference — это сокращенная запись лямбда-выражения, которая вызывает существующий метод. Она использует оператор :: и делает код более читаемым. Например, вместо x -> System.out.println(x) можно написать System.out::println. Method reference работает только с функциональными интерфейсами.

Длинный ответ

Что такое method reference?

Method reference (ссылка на метод) — это синтаксический сахар в Java, который позволяет заменить лямбда-выражение, состоящее из одного вызова метода, на более краткую запись. Он появился в Java 8 вместе с лямбдами и функциональными интерфейсами. Основная цель — сделать код лаконичнее и выразительнее, особенно при работе со Stream API.

Виды method reference

  • Ссылка на статический метод — ClassName::staticMethod
  • Ссылка на метод экземпляра конкретного объекта — instance::instanceMethod
  • Ссылка на метод экземпляра произвольного объекта — ClassName::instanceMethod
  • Ссылка на конструктор — ClassName::new

Примеры кода

// Статический метод
List<String> names = Arrays.asList("Alice", "Bob");
names.forEach(System.out::println); // вместо name -> System.out.println(name)

// Метод экземпляра конкретного объекта
String prefix = "Hello ";
names.forEach(prefix::concat); // вызов prefix.concat(name)

// Метод экземпляра произвольного объекта
names.sort(String::compareToIgnoreCase); // вместо (a, b) -> a.compareToIgnoreCase(b)

// Конструктор
Supplier<List<String>> listSupplier = ArrayList::new; // вместо () -> new ArrayList<>()

Где применяется

Method reference активно используется в Stream API (map, filter, forEach), при работе с Comparator, в функциональных интерфейсах (Supplier, Consumer, Function) и в любом месте, где требуется лямбда-выражение, вызывающее один метод.

Вывод: Используйте method reference, когда лямбда-выражение состоит только из вызова одного метода — это делает код чище и понятнее. Однако избегайте его, если логика сложнее одного вызова или требуется несколько операций.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • Java

    Java

Ключевые слова

#Java

#method reference

#lambda

#functional interface

#syntax sugar

Подпишись на Java Developer в телеграм