В Java 8 появилась новая реклама с долгожданными лямбда-выражениями; каждые 3 дня появляется новая статья о том, как они круты.
Насколько я понял, лямбда-выражение - это не что иное, как анонимный внутренний класс с одним методом (по крайней мере, на уровне байт-кода). Помимо этого он имеет еще одну приятную особенность - вывод типа, но я считаю, что эквивалент этого можно достичь с помощью обобщений на некотором уровне (конечно, не таким аккуратным способом, как с лямбда-выражениями).
Зная это, принесут ли лямбда-выражения нечто большее, чем просто синтаксический подсахаринг в Java? Могу ли я создать более мощные и гибкие классы или другие объектно-ориентированные конструкции с лямбда-выражениями, которые невозможно построить с использованием текущих возможностей языка?
this
в OuterClass.this
- это часть процесса удаления лямбда-выражений в анонимном классе.