संगतता ज्यादातर काम करता है। मैं आपके लिए चेतावनियों से अलग होने के लिए किसी भी मुद्दे की अपेक्षा नहीं करूंगा उदाहरण के लिए जेनेरिक का उपयोग नहीं। हो सकता है कि कुछ मुश्किल से इस्तेमाल किए गए एपीआई को बहिष्कृत कर दिया गया हो, लेकिन मुझे लगता है कि वे जगह पर छोड़े गए थे, जिन्हें बस बहिष्कृत के रूप में चिह्नित किया गया था।
बस इसे आजमाएं, अगर यह आपको संकलित करता है ठीक होना चाहिए।
जावा का एक प्रमुख डिज़ाइन पहलू - दुर्भाग्य से - पूर्ण पिछड़ा संगतता है।
बहुत कम अपवाद हैं जहां पिछड़ा संगतता संरक्षित नहीं थी; सबसे प्रमुख रूप से ग्रहण का सामना करना पड़ा जब सॉर्टिंग एल्गोरिदम स्थिर से एक गैर-स्थिर प्रकार एल्गोरिदम में बदल दिया गया था (ऑब्जेक्ट्स का क्रम जो समान रूप से संरक्षित नहीं था); लेकिन यह जावा विनिर्देश का हिस्सा कभी नहीं था, लेकिन ग्रहण में एक बग था।
यह दुर्भाग्यपूर्ण है, क्योंकि कुछ खराब विकल्प थे जिन्हें अब बदला नहीं जा सकता है। Iterator
को एपीआई में remove()
फ़ंक्शन नहीं होना चाहिए था, Vector
सिंक्रनाइज़ नहीं किया जाना चाहिए था (ArrayList
अब हल करके हल किया जाना चाहिए), StringBuffer
सिंक्रनाइज़ नहीं किया जाना चाहिए था, इसलिए StringBuilder
। String
शायद एक इंटरफ़ेस होना चाहिए, कक्षा नहीं, उदाहरण के लिए अनुमति देना 8-बिट स्ट्रिंग्स, 32-बिट स्ट्रिंग्स - CharSequence
बेहतर स्ट्रिंग इंटरफ़ेस है, लेकिन बहुत से तरीके CharSequence
स्वीकार नहीं करते हैं और String
लौटने की आवश्यकता होती है। Observable
एक इंटरफ़ेस भी होना चाहिए: आप इस API के साथ उप-वर्ग को देखने योग्य नहीं बना सकते हैं। कुछ नाम है। लेकिन पिछली संगतता की वजह से, इन्हें अब तक जेडीके मॉड्यूलरलाइजेशन तक तय नहीं किया जा सकता है (जिस बिंदु पर कुछ कम से कम एक डोनोट्यूज मॉड्यूल में गायब हो सकते हैं ...)।
बेशक आप पहले से ही इकाई के हजारों होना चाहिए परीक्षण आप नए JDK के साथ परीक्षण करने का ... :-)
स्रोत
2012-01-24 07:58:32
संभावित डुप्लिकेट [क्या जावा संस्करणों के बीच पिछड़े असंगतताओं के कोई विशिष्ट उदाहरण हैं?] (Http://stackoverflow.com/questions/1654923/are-there-any- विशिष्ट-examples-of-backward-incompatibilities-between -जावा-बनाम) –