Это одна из самых обсуждаемых функций, запланированных для Java: замыкания. Многие из нас жаждали их. Некоторые из нас (включая меня) стали немного нетерпеливы и обратились к языкам сценариев, чтобы заполнить пустоту.
Но как только в Java наконец появятся замыкания: как они повлияют на сообщество Java? Будет ли продвижение языков сценариев, предназначенных для ВМ, замедляться до ползания, оставаться неизменным или ускоряться? Будут ли люди переходить к новому синтаксису замыкания, превращая таким образом базовые коды Java в более функционально структурированные реализации? Мы увидим только замыкания в Java? Как это повлияет на поддержку инструмента / IDE? Как насчет производительности? И, наконец, что это будет означать для дальнейшего принятия Java как языка по сравнению с другими языками, популярность которых растет?
Чтобы предоставить пример одной из последних предлагаемых синтаксических спецификаций Java Closure:
public interface StringOperation {
String invoke(String s);
}
// ...
(new StringOperation() {
public invoke(String s) {
new StringBuilder(s).reverse().toString();
}
}).invoke("abcd");
станет ...
String reversed = {
String s =>
new StringBuilder(s).reverse().toString()
}.invoke("abcd");
[источник: http://tronicek.blogspot.com/2007/12/closures-closure-is-form-of-anonymous_28.html]