Trong một thư viện trong Java 7, tôi có một lớp cung cấp dịch vụ cho các lớp khác. Sau khi tạo một thể hiện của lớp dịch vụ này, một phương thức của nó có thể được gọi nhiều lần (hãy gọi nó là doWork()
phương thức). Vì vậy, tôi không biết khi nào công việc của lớp dịch vụ được hoàn thành.
Vấn đề là lớp dịch vụ sử dụng các đối tượng nặng và nó sẽ giải phóng chúng. Tôi đặt phần này trong một phương thức (hãy gọi nó release()
), nhưng không đảm bảo rằng các nhà phát triển khác sẽ sử dụng phương pháp này.
Có cách nào để buộc các nhà phát triển khác gọi phương thức này sau khi hoàn thành nhiệm vụ của lớp dịch vụ không? Tất nhiên tôi có thể làm tài liệu đó, nhưng tôi muốn ép buộc họ.
Lưu ý: Tôi không thể gọi release()
phương thức trong doWork()
phương thức, vì doWork()
cần các đối tượng đó khi nó được gọi tiếp theo.
AutoCloseable
đã được thực hiện cho mục đích chính xác này.