मैं कर रहा हूँ एक ClassCastException
जब भी मैं एक AdvancedBufferedImage (बच्चे) जो मैं अपने आप को बढ़ाया करने के लिए एक BufferedImage (पैरेंट) कास्ट करने के लिए प्रयास करते हैं, मैं ओवरराइड नहीं किया है किसी भी तरीके और मैंने कार्यान्वित सभी ठेकेदारों उन्हें संशोधितकास्टिंग माता पिता - BufferedImage वस्तु
जब भी मैं ImageIO.read() विधि का उपयोग कर फ़ाइल के बाहर एक AdvancedBufferedImage बनाने की कोशिश मैं इस अपवाद gettign कर रहा हूँ बिना।
File file = new file(path);
AdvancedBufferedImage image = (AdvancedBufferedImage) ImageIO.read(file);
ऐसा लगता है कि कोई समस्या नहीं होनी चाहिए, समस्या क्या हो सकती है?
तो आप BufferedImage के लिए AdvancedBufferedImage के रिश्ते को बदलने का सुझाव देते हैं, ऐसा नहीं है? –
बिल्कुल। यह दृष्टिकोण आपको उन विधियों को प्रतिनिधि करने की अनुमति देता है जिन्हें आप स्वयं लागू नहीं करना चाहते हैं, और फिर भी अतिरिक्त कार्यक्षमता जोड़ें। आप बस मौजूदा कक्षा को लपेटेंगे। –
सिर्फ एक नोटिस है कि ग्रहण में ऐसा करने के लिए एक आसान उपकरण है, उस वर्ग को बनाएं जिसमें उस वर्ग का उदाहरण है जिसे आप प्रतिनिधि बनाना चाहते हैं, सदस्य पर राइट क्लिक करें, 'प्रतिनिधि विधियां'। विशाल कक्षाओं के लिए बहुत आसान –