संपादित करें: यादृच्छिक रूप से मेरा मतलब है कि डेवलपर्सधारावाहिक संस्करण यूआईडी के लिए यादृच्छिक संख्या का उपयोग क्यों करें?
सीरियलज़ेबल इंटरफेस को कार्यान्वित करते समय इसका सबसे अच्छा अभ्यास और सीरियल संस्करण यूआईडी निर्दिष्ट करने के लिए वास्तव में महत्वपूर्ण है। कई जगहों पर, मुझे अक्सर यादृच्छिक संख्याओं का उपयोग किया जा रहा है। जैसे जावा 6 में
private static final long serialVersionUID = -6849794470754667710L;
ArrayList वर्ग से:: जावा 6 में
private static final long serialVersionUID = 234098243823485285L;
स्ट्रिंग वर्ग से:
प्रभावी जावा (2 संस्करण) पीजी 312
private static final long serialVersionUID = 8683452581122892189L;
इत्यादि। ग्रहण भी इन यादृच्छिक संख्याओं को उत्पन्न करने का विकल्प प्रदान करता है (हालांकि प्राथमिक डिफ़ॉल्ट एक serialVersionUI उत्पन्न करने के लिए प्रतीत होता है 1L
का डी)
यादृच्छिक संख्याओं का उपयोग क्यों करें? क्या यह 1L पर शुरू करने और 2L तक बढ़ने के लिए अधिक समझ में नहीं आता है जब यह किसी समझदार संशोधन नियंत्रण की तरह बदलता है? एकमात्र समय मैं एक यादृच्छिक यादृच्छिक संख्या का उपयोग करने के बारे में सोच सकता हूं, यदि आपने शुरू करने के लिए एक serialVersionUID निर्दिष्ट नहीं किया है और अब ऐसा करना चाहते हैं (जो आपको पिछड़ा संगतता समर्थन प्रदान करने के लिए रन-टाइम स्वत: उत्पन्न संस्करण में संबंध रखता है)।
मुझे नहीं लगता कि वे "यादृच्छिक" संख्याएं हैं, वे सिर्फ मनमानी लगते हैं। वे कक्षा में सदस्यों/विधियों के शायद कुछ प्रकार के हैश हैं। कुल अनुमान, यद्यपि। मेरे पास इस कथन का समर्थन करने के लिए कोई जानकारी नहीं है। –
@ जोनाथन न्यूम्यूज की गणना विधि हस्ताक्षरों और इस तरह के आधार पर की जाती है। – JustinKSU
आप सही हैं क्योंकि वे गणना मूल्य हैं, हालांकि उनके पास इसका कोई अर्थ नहीं है, वे प्रभावी रूप से यादृच्छिक हैं –