Es una de las características más comentadas planeadas para Java: cierres. Muchos de nosotros los hemos estado anhelando. Algunos de nosotros (incluido yo) nos hemos impacientado un poco y hemos recurrido a los lenguajes de secuencias de comandos para llenar el vacío.
Pero, una vez que los cierres hayan llegado finalmente a Java: ¿cómo afectarán a la Comunidad Java? ¿El avance de los lenguajes de script dirigidos a VM se ralentizará, se mantendrá igual o se acelerará? ¿La gente acudirá en masa a la nueva sintaxis de cierre, convirtiendo así las bases de código Java en implementaciones más estructuradas funcionalmente? ¿Solo veremos cierres salpicados en Java en todo momento? ¿Cuál será el efecto en el soporte de herramientas / IDE? ¿Qué tal el rendimiento? Y finalmente, ¿qué significará para la adopción continua de Java, como lenguaje, en comparación con otros lenguajes que están aumentando en popularidad?
Para proporcionar un ejemplo de una de las últimas especificaciones de sintaxis de Java Closure propuestas:
public interface StringOperation {
String invoke(String s);
}
// ...
(new StringOperation() {
public invoke(String s) {
new StringBuilder(s).reverse().toString();
}
}).invoke("abcd");
se convertiría ...
String reversed = {
String s =>
new StringBuilder(s).reverse().toString()
}.invoke("abcd");
[fuente: http://tronicek.blogspot.com/2007/12/closures-closure-is-form-of-anonymous_28.html]