Назад Зміст Вперед

10.10. Призначення Lambda-виразів

Найважливіше нововведення в Java 8 - це лямбда-вирази. Під ними розуміються анонімні методи, які при цьому ще представляють із себе об'єкт, який можна присвоювати змінній і передавати як аргумент в інші методи. 

Навіщо потрібні лямбда?
Лямбда-вираз являє собою блок коду, який можна передати в інше місце, тому він може бути виконаний пізніше, один або кілька разів.

Приклад:
Runnable r = () -> System.out.println("hello");   
Thread th = new Thread(r);   
th.start();  
Тут завдяки такому лямбда-виразу ми значно скорочуємо код. Як би це виглядало без лямбди:
Runnable r = new Runnable() {   
    public void run() {   
        System.out.println("hello");   
    }   
};   
Thread th = new Thread(r);   
th.start();  
У новій версії також введено особливий синтаксис посилань на методи, що по суті - скорочена форма деяких лямбда-виразів: 

Посилання та відповідні лямбда-вирази:
String::valueOf       x -> String.valueOf(x)
Object::toString      x -> x.toString()
x::toString              () -> x.toString()
ArrayList::new        () -> new ArrayList<>()


або тут
Лямбда-вирази в Java 8 - відеоурок

Для кого предназначена эта статья?
• для тех, кто считает, что уже неплохо знает Java Core, но понятия не имеет о лямбда-выражениях в Java. Или, возможно, что-то уже слышал про лямбды, но без подробностей. 
• для тех, у кого есть какое-то понимание лямбда-выражений, но использовать их до сих пор боязно и непривычно.
.