जावा 7 में एक पुस्तकालय में, मेरे पास एक वर्ग है जो अन्य वर्गों को सेवाएं प्रदान करता है। इस सेवा वर्ग का एक उदाहरण बनाने के बाद, इसका एक तरीका कई बार कहा जा सकता है (चलो इसे doWork()
विधि कहते हैं)। इसलिए मुझे नहीं पता कि सेवा वर्ग का काम कब पूरा होगा।
समस्या यह है कि सेवा वर्ग भारी वस्तुओं का उपयोग करता है और इसे उन्हें छोड़ देना चाहिए। मैंने इस भाग को एक विधि में सेट किया (चलो इसे कॉल करें release()
), लेकिन यह गारंटी नहीं है कि अन्य डेवलपर्स इस पद्धति का उपयोग करेंगे।
क्या सेवा वर्ग का कार्य पूरा करने के बाद अन्य डेवलपर्स को इस पद्धति को कॉल करने के लिए बाध्य करने का कोई तरीका है? निश्चित रूप से मैं यह दस्तावेज कर सकता हूं, लेकिन मैं उन्हें मजबूर करना चाहता हूं।
नोट: मैं release()
विधि को विधि नहीं कह सकता doWork()
, क्योंकि doWork()
जब इसे अगले में बुलाया जाता है तो उन वस्तुओं की आवश्यकता होती है।
AutoCloseable
इस सटीक उद्देश्य के लिए बनाया गया था।