Освоюємо Java/Лямбда-вирази: відмінності між версіями

Вилучено вміст Додано вміст
м Володимир Груша перейменував сторінку з Освоюємо Java/Лямда-вирази на Освоюємо Java/Лямбда-вирази: орфографічна помилка
Немає опису редагування
 
Рядок 1:
ЛямдаЛямбда-вираз - це специфічна реалізація анонімного методу, який визначений в функціональному інтерфейсі. ЛямдаЛямбда-вираз появились у Java 8.
 
==ЛямдаЛямбда-вирази та функціональний інтерфейс==
Функціональний інтерфейс – це інтерфейс, який зазначає лише один метод для реалізації. Прикладами функціональних інтерфейсів є інтерфейс Runnable (визначає лише один метод run()), ActionListener (метод actionPerformed()), Comparable (compareTo()), Comparator (compare()) тощо.
 
Рядок 41:
}
</syntaxhighlight>
Третій спобібспосіб – це використання власне лямдалямбда-виразу:
<syntaxhighlight lang="Java">
public class TestLamda {
public static void main(String[] args) {
MyNumber myNum;
myNum=()->3.14; //лямдалямбда-вираз
System.out.println(myNum.getValue());
}
Рядок 52:
</syntaxhighlight>
Як бачимо третій спосіб – найкоротший. Зверніть увагу на <code>myNum2=()->3.14</code>. В дужках у нас нічого не має, оскільки наш метод не приймає ніякі параметри. Справа від оператора-стрілки ми маємо число, яке повертається методом getValue().
Можна ускладнити лямдалямбда вираз, наприклад, так:
<syntaxhighlight lang="Java">
myNum=()->Math.random*10;
Рядок 58:
Тим, що повертається повинен бути сумісний з типом зазначеним при оголошенні абстрактного методу функціонального інтерфейсу.
 
ЛямдаЛямбда вираз може складатися з кількох інструкцій. Таки лямда-вирази називаються блоковими або ж блочними. Блок коду тоді оточується фігурними дужками {код};
<syntaxhighlight lang="Java">
interface Sum{
Рядок 79:
}
</syntaxhighlight>
Функціональний інтерфейс може бути узагальненим, тоді можна використовувати лямда лямбда-вирази з різними типами, що повертаються і різнотипними параметрами методів:
<syntaxhighlight lang="Java">
Interface SomeInt{
Рядок 85:
}
</syntaxhighlight>
ЛямдаЛямбда-вирази можна використовувати в якості аргументу методу, що викликається.
ЛямдаЛямбда-вирази можуть генерувати винятки, які повинні бути зазначені при оголошенні абстрактного методу функціонального інтерфейсу.
 
==Посилання на методи==