É um dos recursos mais comentados planejados para Java: Encerramentos. Muitos de nós ansiamos por eles. Alguns de nós (inclusive eu) ficamos um pouco impacientes e recorremos a linguagens de script para preencher o vazio.
Porém, quando os fechamentos finalmente chegarem ao Java: como eles afetarão a Comunidade Java? O avanço das linguagens de script direcionadas à VM fica lento para um rastreamento, permanece o mesmo ou entra em colapso? As pessoas vão adotar a nova sintaxe de fechamento, transformando assim as bases de código Java em implementações mais estruturadas funcionalmente? Veremos apenas fechamentos espalhados em Java por toda parte? Qual será o efeito no suporte à ferramenta / IDE? E quanto ao desempenho? E, finalmente, o que significa para a adoção contínua do Java, como linguagem, em comparação com outras linguagens que estão crescendo em popularidade?
Para fornecer um exemplo de uma das mais recentes especificações de sintaxe do Java Closure propostas:
public interface StringOperation {
String invoke(String s);
}
// ...
(new StringOperation() {
public invoke(String s) {
new StringBuilder(s).reverse().toString();
}
}).invoke("abcd");
se tornaria ...
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]