के लिए यह संभव (या यहां तक की सलाह दी जाती है) तत्व बयान अपने आप में प्रत्येक कथन के लिए एक से लिया गया कास्ट करने के लिए? मुझे पता है कि सूची में प्रत्येक तत्व <SubType>
प्रकार का होगा।जावा में कास्ट तत्व प्रत्येक बयान
यानी .:
List<BaseType> list = DAO.getList();
for(<SubType> element : list){
// Cannot convert from element type <BaseType> to <SubType>
...
}
बजाय:
List <BaseType> list = DAO.getList();
for(<BaseType> el : list){
<SubType> element = (<SubType>)el;
...
}
+1 इतनी स्पष्ट रूप से अनुबंध तंत्र को बताते हुए इंटरफेस का पालन करना चाहिए। – aperkins
दुर्भाग्यवश डीएओ कोड हमारा नहीं है। हालांकि, डेटासोर्स में फ़ीड हैं। हमने (केवल ऐसा सबक्लास) उपclassed क्योंकि हम कक्षा में अतिरिक्त कार्यक्षमता चाहते थे। चूंकि हम इनपुट को नियंत्रित करते हैं और हम केवल ऑब्जेक्ट्स डाल रहे हैं, मुझे लगता है कि मैं काफी हद तक निश्चित हो सकता हूं कि पुनर्प्राप्त वस्तु वास्तव में में से एक होगी। अगर हम सभी कोड नियंत्रित करते हैं, तो आप 100% सही होंगे। –
@ करल - क्या डीएओ को लपेटने के लायक है, और एक * अलग * इंटरफ़ेस प्रदान करना जो आप चाहते हैं। अन्यथा आपको अपने सभी कोड बेस में कनवर्ट करना होगा (संभावित रूप से - मुझे एहसास है कि मैं इस बारे में धारणाएं कर रहा हूं कि यह कितना व्यापक रूप से वितरित किया गया है) –