Jest to jedna z najczęściej omawianych funkcji planowanych w Javie: Zamknięcia. Wielu z nas tęskni za nimi. Niektórzy z nas (w tym ja) stali się trochę niecierpliwi i wybrali języki skryptowe, aby wypełnić pustkę.
Ale po zamknięciu wreszcie oprogramowania Java: jak wpłyną na społeczność Java? Czy zaawansowanie języków skryptowych ukierunkowanych na maszyny wirtualne spowolni indeksowanie, pozostanie takie samo lub przyspieszy? Czy ludzie będą gromadzić się w nowej składni zamykania, zmieniając w ten sposób podstawy kodu Java w bardziej funkcjonalne struktury? Czy przez cały czas będziemy widzieć tylko zamknięcia zamknięte w Javie? Jaki będzie wpływ na obsługę narzędzia / IDE? Co powiesz na wydajność? I w końcu, co to będzie oznaczać dalsze przyjmowanie Javy jako języka w porównaniu z innymi językami, które zyskują na popularności?
Aby podać przykład jednej z najnowszych proponowanych specyfikacji składni Java Closure:
public interface StringOperation {
String invoke(String s);
}
// ...
(new StringOperation() {
public invoke(String s) {
new StringBuilder(s).reverse().toString();
}
}).invoke("abcd");
stanie się ...
String reversed = {
String s =>
new StringBuilder(s).reverse().toString()
}.invoke("abcd");
[źródło: http://tronicek.blogspot.com/2007/12/closures-closure-is-form-of-anonymous_28.html]