मेरा अंतिम लक्ष्य कक्षाओं को फिर से लोड करने में सक्षम होना है जब वे पहले से ही JVM में लोड हो चुके हैं।एक क्लासलोडर को अनलोड करना
निम्नलिखित उत्तर पढ़ने के बाद Unloading classes in java?, मैं अपने स्वयं के क्लास-लोडर को लागू करने की कोशिश कर रहा हूं, जो स्वयं लोड होने वाले प्रत्येक वर्ग के लिए क्लास-लोडर (उसी प्रकार का स्वयं का) का एक अलग उदाहरण बनाता है।
तो, परिणाम प्रति वर्ग-लोडर प्रति वर्ग एक वर्ग है।
उद्देश्य जीसी कक्षा में सक्षम होना है, जिसका अर्थ है कि इसके सभी उदाहरण, उसके वर्ग लोडर को उतारने के लिए, और उसी वर्ग को अपने बाइट से पुनः लोड करने में सक्षम होना है।
समस्या यह है कि - मैं अपनी कक्षा का उदाहरण अंतिम रूप() विधि का उपयोग करके कचरा एकत्रित कर सकता हूं, लेकिन मैं अपने क्लास-लोडर को उतारने के लिए नहीं मिला, या कचरा इकट्ठा नहीं कर सकता।
क्या कोई कोड उदाहरण है, एक साधारण परीक्षण है, जो दिखाता है कि यह कैसे किया जा सकता है?
धन्यवाद, किसी भी मदद की सराहना की जाएगी
संपादित:
स्पष्ट हो सकता है, मैं कोड उदाहरण में दिलचस्पी है, जहां नई वस्तुओं की इन्स्टेन्शियशन 'नई()' संकार्य के माध्यम से है , और क्लास लोडर मुख्य रूप से कक्षा में कक्षा को फिर से लोड नहीं कर रहा है, लेकिन अगले 'नए()' के बाद कहा जाता है।
जब आप कस्टम 'क्लासलोडर' के माध्यम से कक्षा लोड करते हैं, तो आपको' क्लास 'ऑब्जेक्ट मिलेगा। इसके साथ 'नए' ऑपरेटर का उपयोग करना असंभव है। 'नया' का उपयोग करने का तात्पर्य है कि आप कोड को 'नए' द्वारा उपयोग की जाने वाली कक्षा से जोड़ा गया है और इसलिए, कक्षा को कचरा नहीं मिल सकता है जब आपका कोड 'नई' अभिव्यक्ति वाला अभी भी सक्रिय है। आपको इस बिंदु पर प्रतिबिंब का उपयोग करना होगा, उदा। 'कक्षा 'पर' newInstance() 'का आह्वान करें। बेशक, गतिशील रूप से लोड किया गया कोड स्वयं अपने दायरे में कक्षाओं को तुरंत चालू करने के लिए 'नया' का उपयोग कर सकता है। – Holger