इस सवाल का जवाब, शायद आश्चर्यजनक रूप से, कभी नहीं , या अधिक वास्तविक रूप से, केवल जब आपको कानूनी तौर पर कोड के साथ अंतर के लिए मजबूर किया जाता है । जोशुआ बलोच द्वारा प्रभावी जावा, तीसरे संस्करण में यह सिफारिश की गई है:
आपके द्वारा लिखी गई किसी भी नई प्रणाली में जावा क्रमांकन का उपयोग करने का कोई कारण नहीं है
ओरेकल के मुख्य वास्तुकार, मार्क रेनहोल्ड, रिकॉर्ड पर कहते हैं कि वर्तमान जावा क्रमांकन तंत्र को हटाना एक दीर्घकालिक लक्ष्य है।
जावा क्रमांकन त्रुटिपूर्ण क्यों है
जावा भाषा का एक भाग प्रदान करता है जो एक सीरियलाइज़ेशन स्कीम है जिसे आप Serializable
इंटरफेस का उपयोग करके चुन सकते हैं । इस योजना में कई असाध्य दोष हैं और इसे जावा भाषा डिजाइनरों द्वारा एक असफल प्रयोग के रूप में माना जाना चाहिए।
- यह मौलिक रूप से दिखावा करता है कि व्यक्ति किसी वस्तु के क्रमबद्ध रूप के बारे में बात कर सकता है । लेकिन असीम रूप से कई क्रमबद्ध योजनाएं हैं, जिसके परिणामस्वरूप असीम रूप से कई धारावाहिक रूप हैं। एक योजना को लागू करने से, योजना को बदलने के किसी भी तरीके के बिना, आवेदन उनके लिए सबसे उपयुक्त एक योजना का उपयोग नहीं कर सकते हैं।
- यह वस्तुओं के निर्माण के एक अतिरिक्त साधन के रूप में कार्यान्वित किया जाता है, जो किसी भी पूर्व शर्त को बायपास करता है जो आपके निर्माता या कारखाने के तरीकों का प्रदर्शन करते हैं। जब तक मुश्किल, त्रुटि प्रवण, और अतिरिक्त deserialization कोड का परीक्षण करने के लिए मुश्किल नहीं लिखा जाता है, आपके कोड में संभवतः एक सुरक्षा सुरक्षा कमजोरी है।
- धारावाहिक रूप के विभिन्न संस्करणों की परीक्षण अंतर बहुत मुश्किल है।
- अपरिवर्तनीय वस्तुओं को संभालना कष्टकारी है।
इसके बजाय क्या करें
इसके बजाय, एक क्रमांकन योजना का उपयोग करें जिसे आप स्पष्ट रूप से नियंत्रित कर सकते हैं। जैसे प्रोटोकॉल बफ़र्स, JSON, XML या आपकी स्वयं की कस्टम योजना।