मैं वर्तमान में एपी जावा में हाई स्कूल के छात्र की पढ़ाई कर रहा हूं और उसने मुझे "डबल कास्टिंग" के बारे में एक प्रश्न पूछा। मैंने पहले कभी इस शब्द को नहीं सुना था, लेकिन जाहिर है कि उसके शिक्षक को उम्मीद है कि वह उन्हें अपने आने वाले फाइनल के बारे में जान सके।"डबल कास्टिंग"
उदाहरण उसके शिक्षक प्रदान की अगर आप एक स्ट्रिंग में एक पूर्णांक कास्ट करने के लिए चाहता था, आप एक संकलक त्रुटि नहीं प्राप्त करने के लिए निम्न कार्य करने के लिए होता था:
Integer i = new Integer(5);
String s = (String)(Object) i;
सवाल यह है: जब आप चाहते हैं वास्तविक जीवन में ऐसा करने के लिए?
शिक्षक ने केवल उदाहरण प्रदान किए हैं जिसके परिणामस्वरूप रन टाइम त्रुटि होती है। इसके अलावा, मुझे कभी नहीं पता था कि इसके लिए एक शब्द था, लेकिन ऐसा लगता है कि ऐसा करने के लिए एक बुरा विचार है क्योंकि केवल दो त्रुटिएं हैं जब दोनों प्रकार असंगत हैं।
धन्यवाद!
कि कोड निश्चित रूप से एक 'ClassCastException' तक ले जाएगा, जबकि' Integer' "Upcast" करने के लिए 'हो सकता है Object', ऑब्जेक्ट अभी भी जानता है कि यह एक 'इंटीगर' है ... दूसरा कास्टिंग असफल हो जाएगा। उसका शिक्षक क्या धूम्रपान करता है? : पी – fge
@fge हाँ .. मैं किसी भी उदाहरण के बारे में नहीं सोच सकता था, जब उसने मुझसे आज पूछा, तो मैंने उसे बताया कि मैं उसे वापस ले जाऊंगा .. यह जानना अच्छा है कि यह सिर्फ एक बुरा विचार है और मैं मैं पागल नहीं हूँ। =] –
कोई कारण नहीं है कि आप इस तरह के कोड क्यों लिखेंगे। यदि आप कास्ट के बाद आवश्यक अंतिम प्रकार की वस्तु को जानते हैं, तो यह है कि आप ऑब्जेक्ट को किस प्रकार डालेंगे। क्या आप निश्चित हैं कि शिक्षक का मतलब (स्ट्रिंग) ((ऑब्जेक्ट) i) नहीं है। कुछ())? – aishwarya