Đây là một trong những tính năng được nói đến nhiều nhất được lên kế hoạch cho Java: Closures. Nhiều người trong chúng ta đã mong mỏi họ. Một số người trong chúng tôi (bao gồm cả tôi) đã trở nên hơi thiếu kiên nhẫn và đã chuyển sang các ngôn ngữ kịch bản để lấp đầy khoảng trống.
Nhưng, một khi các lần đóng cửa cuối cùng đã đến với Java: chúng sẽ ảnh hưởng đến Cộng đồng Java như thế nào? Liệu sự tiến bộ của các ngôn ngữ kịch bản được nhắm mục tiêu VM sẽ chậm khi thu thập dữ liệu, giữ nguyên hoặc tích lũy? Mọi người sẽ tập trung vào cú pháp đóng mới, do đó biến tất cả các cơ sở mã Java thành các triển khai có cấu trúc chức năng hơn? Chúng ta sẽ chỉ thấy các bao đóng được rắc trong Java trong suốt? Điều gì sẽ có hiệu lực trên công cụ / IDE hỗ trợ? Làm thế nào về hiệu suất? Và cuối cùng, nó có ý nghĩa gì đối với việc tiếp tục áp dụng Java, như một ngôn ngữ, so với các ngôn ngữ khác đang ngày càng phổ biến?
Để cung cấp một ví dụ về một trong các đặc tả cú pháp Đóng cửa Java được đề xuất mới nhất:
public interface StringOperation {
String invoke(String s);
}
// ...
(new StringOperation() {
public invoke(String s) {
new StringBuilder(s).reverse().toString();
}
}).invoke("abcd");
sẽ trở thành ...
String reversed = {
String s =>
new StringBuilder(s).reverse().toString()
}.invoke("abcd");
[nguồn: http://tronicek.blogspot.com/2007/12/closures-clenses-is-form-of-anonymous_28.html]