Es ist eine der am meisten diskutierten Funktionen, die für Java geplant sind: Closures. Viele von uns haben sich nach ihnen gesehnt. Einige von uns (einschließlich ich) sind etwas ungeduldig geworden und haben sich Skriptsprachen zugewandt, um die Lücke zu füllen.
Aber sobald die Schließungen in Java angekommen sind: Wie werden sie sich auf die Java-Community auswirken? Wird die Weiterentwicklung von VM-zielgerichteten Skriptsprachen langsamer werden, gleich bleiben oder sich beschleunigen? Werden die Leute auf die neue Closure-Syntax umsteigen und so Java-Codebasen rundum in funktional strukturierte Implementierungen verwandeln? Werden wir nur Schließungen sehen, die überall in Java verteilt sind? Welche Auswirkungen hat dies auf die Tool- / IDE-Unterstützung? Wie wäre es mit Leistung? Und schließlich, was bedeutet es für Javas fortgesetzte Akzeptanz als Sprache im Vergleich zu anderen Sprachen, die immer beliebter werden?
So geben Sie ein Beispiel für eine der neuesten vorgeschlagenen Java Closure-Syntaxspezifikationen:
public interface StringOperation {
String invoke(String s);
}
// ...
(new StringOperation() {
public invoke(String s) {
new StringBuilder(s).reverse().toString();
}
}).invoke("abcd");
würde werden ...
String reversed = {
String s =>
new StringBuilder(s).reverse().toString()
}.invoke("abcd");
[Quelle: http://tronicek.blogspot.com/2007/12/closures-closure-is-form-of-anonymous_28.html]