Це одна з найбільш обговорюваних функцій, запланованих для Java: Закриття. Багато з нас так прагнули до них. Деякі з нас (у тому числі я) трохи нетерплячі і звернулися до мов скриптів, щоб заповнити порожнечу.
Але, як тільки закриття нарешті дійшли до Java: як вони впливатимуть на спільноту Java? Чи буде просування мови, орієнтованої на VM-скрипт, повільно скануватиметься, залишатиметься однаковою чи пришвидшеною? Чи будуть люди стикатися до нового синтаксису закриття, таким чином перетворюючи бази коду Java всебічно у більш функціонально структуровані реалізації? Чи будемо ми бачити лише закриття, посипані на Java протягом усієї? Який вплив буде на підтримку інструментів / IDE? Як щодо продуктивності? І нарешті, що це буде означати для подальшого прийняття Яви як мови в порівнянні з іншими мовами, що користуються популярністю?
Наведіть приклад однієї з останніх запропонованих специфікацій синтаксису Java Closure:
public interface StringOperation {
String invoke(String s);
}
// ...
(new StringOperation() {
public invoke(String s) {
new StringBuilder(s).reverse().toString();
}
}).invoke("abcd");
стане ...
String reversed = {
String s =>
new StringBuilder(s).reverse().toString()
}.invoke("abcd");
[джерело: http://tronicek.blogspot.com/2007/12/closures-closure-is-form-of-anonymous_28.html]