เป็นหนึ่งในคุณสมบัติที่ได้รับการกล่าวถึงมากที่สุดเกี่ยวกับ Java: Closures พวกเราหลายคนโหยหาพวกเขา พวกเราบางคน (รวมถึงฉัน) มีความอดทนเพิ่มขึ้นและหันไปใช้ภาษาสคริปต์เพื่อเติมเต็มความว่างเปล่า
แต่ในที่สุดเมื่อการปิดมาถึง Java: พวกเขาจะส่งผลกระทบต่อชุมชน Java อย่างไร ความก้าวหน้าของภาษาสคริปต์ที่ตั้งเป้าหมายไว้กับ VM จะช้าลงในการรวบรวมข้อมูลอยู่เหมือนเดิมหรือเพิ่มพูน? ผู้คนจะแห่กันไปยังซินแท็กซ์ปิดใหม่ดังนั้นการเปลี่ยนรหัส Java ให้เป็นโครงสร้างที่มีฟังก์ชั่นการใช้งานมากขึ้นหรือไม่? เราจะเห็นเฉพาะการปิดโปรยใน Java ตลอดไหม? สิ่งที่จะมีผลต่อการสนับสนุนเครื่องมือ / IDE? ประสิทธิภาพเป็นอย่างไร และในที่สุดความหมายของการยอมรับอย่างต่อเนื่องของ Java ในฐานะภาษาคืออะไรเมื่อเทียบกับภาษาอื่น ๆ ที่ได้รับความนิยมเพิ่มขึ้น
ในการจัดเตรียมตัวอย่างหนึ่งของรายละเอียดทางไวยากรณ์ 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]