Найважливіше нововведення в 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. Или, возможно, что-то уже слышал про лямбды, но без подробностей.
• для тех, у кого есть какое-то понимание лямбда-выражений, но использовать их до сих пор боязно и непривычно.
• для тех, у кого есть какое-то понимание лямбда-выражений, но использовать их до сих пор боязно и непривычно.