Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.
← К каналу

🍒 Магия двойного двоеточия: Method References Мы уже научились писать лямбды.

🍒 Магия двойного двоеточия: Method References

Мы уже научились писать лямбды. Но иногда даже лямбда кажется слишком громоздкой. Если ваша лямбда не делает ничего, кроме вызова одного уже существующего метода, Java позволяет использовать Method Reference (ссылку на метод).

Синтаксис простой: Класс::метод (без скобок!).

🛠 4 ситуации, когда это работает

Есть 4 основных способа использовать оператор ::. Важно понимать разницу, чтобы не путаться.

1. Ссылка на статический метод
💙 Лямбда: s -> Integer.parseInt(s)
💙 Reference: Integer::parseInt
💙 Суть: Просто перенаправляем входящий параметр в статический метод.


2. Ссылка на метод конкретного объекта
💙 Лямбда: obj -> System.out.println(obj)
💙 Reference: System.out::println
💙 Суть: У нас уже есть готовый объект (System.out), и мы вызываем его метод для каждого элемента.


3. Ссылка на метод произвольного объекта определенного типа (Самый хитрый пункт! 🤯)
💙 Лямбда: s -> s.toLowerCase()
💙 Reference: String::toLowerCase
💙 Суть: Здесь метод вызывается у самого объекта, который пришел в лямбду. Хотя синтаксис похож на статический вызов, это вызов инстанс-метода.


4. Ссылка на конструктор
💙 Лямбда: () -> new ArrayList<>()
💙 Reference: ArrayList::new
💙 Суть: Используется для создания новых объектов (часто в Stream API: Collectors.toCollection(ArrayList::new)).


💻 Пример: Было vs Стало

Смотрите, как очищается код. Допустим, у нас есть список имен:

List<String> names = Arrays.asList("Alex", "Bob", "Anna");

// ❌ Уровень 1: Анонимный класс (Олдскул)
names.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});

// ⚠️ Уровень 2: Обычная лямбда
names.forEach(s -> System.out.println(s));

// ✅ Уровень 3: Method Reference (Красота)
names.forEach(System.out::println);
🧠 Как понять, когда использовать?

Если ваша лямбда выглядит так:
x -> Class.method(x)
или
x -> x.method()
...смело меняйте её на ::.

Но! Если вам нужно изменить аргумент перед передачей (например, x -> System.out.println("Name: " + x)), то Method Reference уже не подойдет, оставайтесь на лямбде.

#Java #CleanCode #MethodReference

👉 @BookJava
← Предыдущий пост 🚀 Функциональные интерфейсы: Level Up В первой части мы разобрали «Великолепную… Следующий пост → Spring Boot Tutorial | Полный курс В этом учебном пособии по Spring Boot расска…
Другие главы канала «Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 04.05.2026
📝 Советы по оптимизации Java кода: избавляемся от лишнего Привет, друзья! Сег…
👁 168 просмотров
Глава от 03.05.2026
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 ht…
👁 206 просмотров
Глава от 01.05.2026
Stream API: Обзор и Основные Методы Stream API – мощный инструмент для обрабо…
👁 330 просмотров
Глава от 30.04.2026
🔥 Разбираем CompletableFuture в Java: Асинхронность без боли Всем добрый вече…
👁 411 просмотров
Глава от 29.04.2026
📌 Java: Как работает volatile и когда его использовать? 🔥 Что делает volatile?…
👁 444 просмотров
Глава от 28.04.2026
В чем разница между Iterator и ListIterator? — Iterator может итерироваться тол…
👁 433 просмотров
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
Удалить этот пост Удалить канал
🔍
Архив всех постов Макс
Поиск по тексту среди 3,314,747 постов из 200,421 каналов. Фильтры по дате, видео, репостам и удалённым публикациям.
1 ₽ — 7 дней доступа
далее 490 ₽/мес
Получить доступ за 1 ₽
или войти, если уже есть аккаунт

Связанные темы в других каналах

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@matematik_andrei_channel
Математик Андрей
Математика с Андреем: подготовка к ЕГЭ, ОГЭ, олимпиадам. Курсы, консультации и разборы задач. Подписывайся, чтобы сдать экзамены на 80+ баллов!
👥 148 549 · +8 468/7д
@obr_mo
Образование Подмосковья
Свежие новости об образовании в Московской области: школы, колледжи, детские сады, вузы. Рассказываем о ремонтах, новых предметах, олимпиадах, льготах для учителей и важн…
👥 77 689 · -327/7д
@iqkot
Образование
Погрузись в мир знаний и саморазвития вместе с сообществом единомышленников. Здесь мы обсуждаем самые актуальные темы образования, делимся лайфхаками для обучения и вдохн…
👥 69 977 · -16 975/7д
@Moscow_school
Московское образование
Официальный канал Департамента образования и науки Москвы. Здесь вы найдете актуальные новости московских школ, полезные советы для родителей и учеников, анонсы мероприят…
👥 69 437 · +95/7д
@bestch
Культура речи • Саморазвитие
Прокачай свою речь и эрудицию вместе с каналом «Культура речи • Саморазвитие». Здесь ты узнаешь, как правильно писать и говорить, расширишь словарный запас и научишься уд…
👥 60 868 · -631/7д
@Lingvaa
Лингвист | Русский язык Образование
Забыли, как правильно: звонИт или звОнит? Тыкаете наугад в ударениях? Канал «Лингвист» — ваш ежедневный филолог в кармане. Короткие заметки, разборы сложных правил, тесты…
👥 53 567 · -114/7д

Популярные посты канала «Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.»

🚀 В чем разница между HashMap и Hashtable в Java? Если вы работаете с Java, то наверняка сталкивались с HashMap и Hashtable. Оба использу…
👁 2 274 просмотров
map() vs flatMap(): Битва трансформеров Оба метода находятся в конвейере (Intermediate operations) и нужны для преобразования данных. Но ра…
👁 2 271 просмотров
🚑 Global Exception Handling: Красиво падаем Представьте: пользователь запрашивает ID, которого нет. 🔴 Плохой сценарий: Сервер выплевывает …
👁 2 269 просмотров
🎁 Optional: Лекарство от NullPointerException Тони Хоар назвал изобретение null своей "ошибкой на миллиард долларов". NullPointerException …
👁 2 265 просмотров
🧩 Микросервисы: Укрощение хаоса (Spring Cloud) Когда у вас один сервис, всё просто. Но когда их становится 10, 20 или 50, возникают вопросы…
👁 2 257 просмотров
💾 Spring Data JPA: SQL больше не нужен? Spring Data JPA это абстракция над Hibernate (который, в свою очередь, является реализацией JPA). …
👁 2 253 просмотров
🎛 Конфигурация Spring Boot: YAML, Профили и Секреты Хардкодить настройки (порты, пароли, URL-ы) в Java-коде - это моветон. Если вам нужно п…
👁 2 244 просмотров
🔮 Pattern Matching в Switch: Типизируй это! Помните этот бесконечный кошмар, когда вам приходит Object, и нужно понять, что внутри? Раньше …
👁 2 241 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 2 240 просмотров
📦 От Кода к Продакшену: JAR и Docker В старые времена (Java EE) процесс деплоя был адом: нужно было установить на сервер Tomcat, настроить …
👁 2 239 просмотров
🧵 Виртуальные потоки: Революция производительности Представьте, что вы строите высоконагруженный сервер. Раньше у вас было два пути: 1. Кл…
👁 2 238 просмотров
🧪 Тестирование в Spring Boot: Спите спокойно Глобально тесты делятся на два лагеря: 1. Unit-тесты (Модульные): Быстрые, изолированные. Про…
👁 2 224 просмотров
Java Records: Убийцы бойлерплейта Сколько раз вы создавали класс просто чтобы "перенести данные" из точки А в точку Б? Вы пишете 3 поля, а …
👁 2 224 просмотров
🎮 Анатомия REST Controller: Входящие и Исходящие Раньше, чтобы вернуть JSON, нужно было танцевать с бубном. В Spring Boot это делается "из …
👁 2 223 просмотров
🍃 Spring Boot: Магия или Логика? (IoC & Beans) Когда вы запускаете Spring-приложение, происходит магия: все нужные объекты создаются сами, …
👁 2 221 просмотров
🚀 Redis + Spring Cache: Турбо-наддув для бэкенда Самая медленная часть любого приложения это ввод-вывод (I/O). Поход в базу данных (Postgre…
👁 2 218 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 2 216 просмотров
🔀 Switch Expressions: Прощай, break! Помните это чувство, когда забыл написать break в switch-case, и код пошел выполняться дальше, создав…
👁 2 215 просмотров
📨 Apache Kafka: Нервная система микросервисов Представьте, что вы заказали пиццу. • REST подход: Вы стоите у прилавка и смотрите на повара…
👁 2 207 просмотров
🏗 Порождающие паттерны: Как рождаются объекты? Создать объект просто: User u = new User(). А если у объекта 20 полей? А если нам нужен толь…
👁 2 206 просмотров
🏷 Темы и теги
#Java #CleanCode #MethodReference #spring boot #java #hibernate #docker #собеседование #микросервисы #Образование
📋 О канале Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.
Всё о Java Core, JVM, Multithreading и ООП. Гайды по Hibernate, Kafka, Docker, Kubernetes (K8s) и Microservices. Разбираем SQL, NoSQL и базы данных. Подготовка к интервью: Паттерны, System Design, LeetCode, Roadmap для Junior, Middle, Senior. Новости экосистемы: Kotlin, Android, Maven, Gradle, Git, CI/CD. Тестирование (JUnit, Mockito) и Best Practices разработки высоконагруженных систем.
📊 Аналитика канала «Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
📌 Данные подтянутся автоматически по ссылке на канал. Логотип необязателен — ускоряет проверку.
🖼 Перетащите картинку или выберите файл
PNG, JPG, WEBP · до 5 МБ
captcha

Нажимая кнопку, вы соглашаетесь на обработку данных.
Проверим и добавим канал в течение суток.