मैं सीखने की कोशिश कर रहा हूं कि धारावाहिक जावा और उसके सबसे पुराने संस्करण के साथ कैसे काम करता है। मैं इस तरह एक लैम्ब्डा क्रमानुसार करने कोशिश कर रहा हूँ:धारावाहिक लैम्ब्डा और कोई serialVersionUID?
Runnable r = (Runnable & Serializable)() -> {System.out.println("This is a test");};
लेकिन मैं नोटिस कि मैं एक serialVersionUID
चर के अभाव के बारे में कोई चेतावनी है। क्या यह सामान्य है ?
मैं जानता हूँ कि यह क्रम तथापि पर उत्पन्न हो जाएगा यह दृढ़ता से इसे परिभाषित करने की सिफारिश की है: https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html
एक serializable वर्ग स्पष्ट रूप से एक serialVersionUID की घोषणा नहीं करता है, तो क्रमबद्धता क्रम की गणना करेगा एक डिफ़ॉल्ट serialVersionUID जावा (टीएम) ऑब्जेक्ट सीरियलाइजेशन विशिष्टता में वर्णित अनुसार, कक्षा के विभिन्न पहलुओं के आधार पर उस वर्ग के लिए मूल्य। हालांकि, यह सलाह दी जाती है कि सभी serializable वर्गों स्पष्ट serialVersionUID मूल्यों की घोषणा के बाद से डिफ़ॉल्ट serialVersionUID गणना अत्यधिक करने के लिए वर्ग विवरण संकलक कार्यान्वयन के आधार पर भिन्न हो सकता है कि संवेदनशील है, और इस प्रकार अक्रमांकन दौरान अप्रत्याशित InvalidClassExceptions हो सकती है। इसलिए, एक अलग serialVersionUID विभिन्न जावा कंपाइलर कार्यान्वयन में मूल्य की गारंटी के लिए, एक serializable कक्षा को एक स्पष्ट serialVersionUID मान घोषित करना होगा। यह भी दृढ़ता से सलाह देता है कि स्पष्ट serialVersionUID घोषणाएं निजी संशोधक का उपयोग करें जहां संभव हो, क्योंकि ऐसी घोषणाएं केवल पर लागू होती हैं, तुरंत घोषित कक्षा - सीरियल VersionUID फ़ील्ड विरासत वाले सदस्यों के रूप में उपयोगी नहीं हैं। ऐरे कक्षाएं एक स्पष्ट serialVersionUID घोषित नहीं कर सकती हैं, इसलिए उनके पास हमेशा डिफ़ॉल्ट गणना मूल्य होता है, लेकिन सेरियल VersionUID मानों के मिलान की आवश्यकता सरणी कक्षाओं के लिए छूट दी जाती है।
मुझे क्या करना चाहिए? मैं इसे अपने लैम्ब्डा में कैसे परिभाषित कर सकता हूं?
धन्यवाद
परिभाषित वर्ग की कमी के कारण फ़ील्ड 'serialVersionUID 'घोषित करने का कोई तरीका नहीं है। और यह सीधे अगले प्रश्न की ओर जाता है: किस कारण से लैम्ब्डा क्रमबद्ध होना चाहिए? इसमें फ़ील्ड नहीं हैं और इस प्रकार कोई डेटा नहीं है! – Seelenvirtuose
@ सेलेनविर्टुओस एक धारावाहिक लैम्ब्डा में वे मान होते हैं जिन्हें लैम्ब्डा का मूल्यांकन किया गया था। यदि विभिन्न कब्जे वाले मूल्यों के साथ एक लैम्ब्डा का मूल्यांकन कई बार किया जाता है, तो लैम्बडास को जोड़ने वाली वस्तुएं अलग-अलग होंगी, और उनके क्रमबद्ध प्रतिनिधित्व भी होंगे। –
@StuartMarks जाहिर है, मैंने काफी दूर नहीं सोचा था। इस पर ध्यान दिलाने के लिए धन्यवाद। असल में, इससे मुझे अपने दिमाग को बदलने (निर्माण?) में मदद मिली। – Seelenvirtuose