मैं कक्षा से एक्सएमएल तक आदिम प्रकारों को क्रमबद्ध करने और डी-क्रमबद्ध करने के लिए अपनी लाइब्रेरी बनाने की कोशिश कर रहा हूं और विधि नामकरण पैटर्न और विधि वापसी की जांच करने के लिए प्रतिबिंब का उपयोग करके एक्सएमएल से कक्षा के उदाहरण में प्रकार के।जावा कन्वर्ट अज्ञात आदिम ऐरे ऑब्जेक्ट ऐरे
अब तक मैं सभी बुनियादी आदिम प्रकारों के साथ ऐसा करने में सक्षम हूं लेकिन मैं उसी प्राइमेटिव्स की सरणी को क्रमबद्ध करने पर अटक गया हूं।
उदाहरण के लिए मैं कक्षा विधि आह्वान पुरातन की सरणी प्राप्त करने के लिए:
method.invoke(clazz, (Object[])null);
यह विधि केवल एक आदिम सरणी int[], double[], float[], char[]
आदि वापस आ जाएगी, हालांकि हम नहीं जानते कि जो भी इसे किया जाएगा।
मैं के रूप में
T t = (T)method.invoke(clazz, (Object[])null);
T[] t = (T[])method.invoke(clazz, (Object[])null);
एक सामान्य तरह के उपयोग करने की कोशिश की है लेकिन यह नहीं करता है मुझे आदिम सरणी से किसी ऑब्जेक्ट को डाली।
और आप Array.newInstance
का उपयोग नहीं कर सकते हैं मानते हैं कि हम इस प्रकार को नहीं जानते हैं।
क्या कोई तरीका है कि मैं प्राइमेटिव्स के इस सरणी को सामान्य रूप से ऑब्जेक्ट सरणी कहने के लिए परिवर्तित कर सकता हूं।
एक सामान्य तरीके से अर्थ है कि सरणी के प्रकार को जानने या जांचने की आवश्यकता के बिना। या मुझे बस सभी आदिम प्रकारों के माध्यम से चक्र बनाना चाहिए और उन सभी को अलग से संभालना चाहिए।
मैं यह दोनों तरीकों से कर सकता हूं एकमात्र कारण यह है कि मैं इसे सामान्य तरीके से करना चाहता हूं, अनावश्यक कोड को काटना है।
अग्रिम धन्यवाद।
+1 महान प्रश्न! –