У Java 8 з'явився новий галас із довгоочікуваними лямбдаськими виразами; кожні 3 дні з ними з’являється ще одна стаття про те, як вони круті.
Наскільки я зрозумів лямбда-вираз - це не що інше, як анонімний внутрішній клас одним методом (принаймні, на рівні байт-коду). Окрім цього, це має ще одну приємну особливість - вивід типу, але я вважаю, що еквівалент цього може бути досягнутий на загальному рівні (звичайно, не таким акуратним чином, як з лямбда-виразами).
Знаючи це, чи лямбда-вирази принесуть щось більше, ніж просто синтаксичне цукор на Java? Чи можу я створити більш потужні та гнучкі класи або інші об'єктно-орієнтовані конструкції з лямбда-виразами, які неможливо побудувати за допомогою сучасних мовних особливостей?
this
в OuterClass.this
є частиною процесу знецінення лямбда-виразів в анонімний клас.