यह आइटम प्रभावी जावा पुस्तक का कोई 74 एक पैराग्राफ जो नीचे के अनुसार उल्लेख है (आइटम 74 के अंतिम से 2 पैरा) है:प्रभावी जावा मद कोई 74 (क्रमबद्धता पर): लागू Serializable विवेकपूर्ण तरीके से
आंतरिक वर्ग (आइटम 22) Serializable लागू नहीं करना चाहिए। वे संकलक-जेनरेट सिंथेटिक फ़ील्ड का उपयोग उदाहरणों और को 0xस्कॉप्स को संलग्न करने से स्थानीय चर के मानों को संग्रहीत करने के संदर्भों को संग्रहीत करने के संदर्भों को संग्रहीत करने के लिए करते हैं। ये फ़ील्ड कक्षा परिभाषा के अनुरूप कैसे हैं निर्दिष्ट, अज्ञात और स्थानीय वर्गों के नाम हैं। इसलिए, आंतरिक कक्षा का डिफ़ॉल्ट क्रमबद्ध रूप बीमार है- परिभाषित किया गया है।
मुझे आंतरिक वर्ग के बारे में पता है जो कंपाइलर जेनरेट सिंथेटिक फ़ील्ड का उपयोग संलग्न उदाहरणों के संदर्भ में संग्रहीत करने के लिए करता है उदा। यदि संलग्न वर्ग MyEnclosing और आंतरिक वर्ग MyInner है तो संलग्न संदर्भ MyEnclosing.this है। लेकिन मैं बोल्ड भाग प्राप्त करने में सक्षम नहीं हूं। कृपया मुझे अर्थ प्राप्त करने में मदद करें। धन्यवाद!!!
आपके प्रयास के लिए धन्यवाद। आप मूल रूप से कहना चाहते हैं कि वैल $ ए कंपाइलर द्वारा आंतरिक कक्षा में संग्रहीत चर है जो (वैल $ ए) आउट क्लास का हिस्सा है। क्या मैं सही हूँ? यदि मैं सही हूं तो समस्या क्या है आंतरिक कक्षा को क्रमबद्ध नहीं करना। असल में मैं आपका प्राप्त नहीं कर पा रहा हूं "लेकिन इस स्थिति में उपयोग किए जाने वाले सटीक नाम कंपाइलर के spec" भाग का हिस्सा नहीं हैं। – Trying
मुझे पूरा यकीन है कि मैंने क्लास फाइलों को एक नामकरण सम्मेलन के साथ देखा है जो 'बाहरी क्लास $ 1' के बजाय' बाहरी क्लास $ विधि $ 1' को आंतरिक कक्षा कहलाता है (हालांकि मैंने अभी कई कंपाइलर्स की कोशिश की है और सक्षम नहीं था इसे पुन: उत्पन्न करने के लिए)। बिंदु [spec] (http://jcp.org/aboutJava/communityprocess/maintenance/JLS/innerclasses.pdf) केवल तभी आवश्यक है कि संकलक $, अक्षरों, और कुछ संयोजनों को जोड़कर एक अद्वितीय नाम बनाये। संलग्न वर्ग नाम के बाद संख्याएं। और यदि वर्ग का नाम बदल गया, तो deserialization विफल हो जाएगा। –
मैं थोड़ी उलझन में हूं ... जब आप 'इस' को क्रमबद्ध कर रहे हों तो आपकी अनाम' रननेबल 'क्लास को धारावाहिक क्यों मिलेगा? केवल आपके बाहरी वर्ग के खेतों को क्रमबद्ध किया जाता है। और सवाल वास्तव में आंतरिक/स्थानीय/अज्ञात वर्ग को 'Serializable'' के रूप में संदर्भित करता है ... –