Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

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

Чем method reference отличается от лямбды?

Вопрос проверяет понимание различий между method reference и лямбда-выражениями в Java, что важно для написания чистого и читаемого кода.

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

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

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

Основное различие

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

Примеры

// Лямбда
List<String> names = Arrays.asList("Alice", "Bob");
names.forEach(s -> System.out.println(s));

// Method reference
names.forEach(System.out::println);

// Лямбда с логикой
names.forEach(s -> {
    if (s.startsWith("A")) {
        System.out.println(s.toUpperCase());
    }
});
// Такой код нельзя заменить method reference

Типы method reference

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

Когда что использовать

Если лямбда состоит из одного вызова метода — предпочтительнее method reference, так как код становится короче и понятнее. Если нужно выполнить несколько действий или есть логика — используйте лямбду.

Вывод: Method reference улучшает читаемость кода, когда лямбда сводится к простому вызову метода. В остальных случаях лямбда остаётся более гибким инструментом.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • Java

    Java

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

#method reference

#lambda

#Java

#functional interface

#syntax sugar

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