È una delle funzionalità più discusse previste per Java: Closures. Molti di noi hanno desiderato ardentemente per loro. Alcuni di noi (incluso io) sono diventati un po 'impazienti e si sono rivolti ai linguaggi di scripting per riempire il vuoto.
Ma una volta che le chiusure sono finalmente arrivate a Java: come avranno effetto sulla Java Community? L'avanzamento dei linguaggi di programmazione mirati alla VM rallenterà la scansione, rimarrà lo stesso o accluso? Le persone si affolleranno alla nuova sintassi di chiusura, trasformando così le basi di codice Java a tutto tondo in implementazioni più strutturate dal punto di vista funzionale? Vedremo solo le chiusure sparse in Java per tutto il tempo? Quale sarà l'effetto sul supporto strumento / IDE? Che ne dici delle prestazioni? E infine, che cosa significherà per l'adozione continua di Java, come lingua, rispetto ad altre lingue che stanno aumentando di popolarità?
Fornire un esempio di una delle più recenti specifiche di sintassi Java Closure proposte:
public interface StringOperation {
String invoke(String s);
}
// ...
(new StringOperation() {
public invoke(String s) {
new StringBuilder(s).reverse().toString();
}
}).invoke("abcd");
diventerebbe ...
String reversed = {
String s =>
new StringBuilder(s).reverse().toString()
}.invoke("abcd");
[fonte: http://tronicek.blogspot.com/2007/12/closures-closure-is-form-of-anonymous_28.html]