मैं जावा में जेनेरिक के बारे में सीख रहा हूं, और सोच रहा था कि क्या इसे खराब कोडिंग माना जाएगा।जावा कंटेनर में ऑब्जेक्ट्स के कई प्रकार
यदि मैं ArrayList<Object>
घोषित करता हूं तो मुझे पता है कि मैं किसी भी प्रकार की वस्तु को इस सूची में डाल सकता हूं, क्योंकि सभी ऑब्जेक्ट ऑब्जेक्ट से निकलते हैं। मुझे यह भी पता है कि जब मैं ArrayList.remove(index)
पर कॉल करता हूं, तो ऑब्जेक्ट से निकाली गई वस्तु ऑब्जेक्ट का प्रकार है, और मुझे उस ऑब्जेक्ट के प्रकार को टाइप करना होगा जिसे मैं उपयोग करना चाहता हूं।
अब मान लीजिए कि मेरे पास Dog
, Cat
, और Car
का ऑब्जेक्ट है। क्या सभी तीन वस्तुओं को सरणी में रखना बुरा होगा, क्योंकि वे समान वर्ग नहीं हैं?
हां। यह रनटाइम क्लासकास्ट अपवादों का कारण बन सकता है। जेनेरिक संकलन समय जांच सुनिश्चित करना है ताकि आपका कोड सुरक्षित प्रकार – Adi
अंत में, यह संदर्भ पर निर्भर करता है। ऐसा कहने के लिए कुछ भी नहीं है कि यह गलत है * प्रति * * स्टोर करने के लिए 'कुत्ते,' बिल्ली और 'कार की सूची उसी सूची में है, और निश्चित रूप से ऐसे मामले हैं जहां यह करना सही बात है; यह केवल इस बात पर निर्भर करता है कि आप इसे क्यों कर रहे हैं। यदि आप ऐसा क्यों करना चाहते हैं, इस पर थोड़ा और संदर्भ प्रदान कर सकते हैं, तो यह एक अच्छा जवाब देने में मदद करेगा। – Dolda2000