तो मैं रनटाइम पर कक्षाओं के कन्स्ट्रक्टर का आह्वान करने की कोशिश कर रहा हूं। तर्कों की गलत संख्या:जावा प्रतिबिंब त्रुटि: तर्कों की गलत संख्या
String[] argArray = {...};
...
Class<?> tempClass = Class.forName(...);
Constructor c = tempClass.getConstructor(String[].class);
c.newInstance(argArray);
...
जब भी मैं कोड संकलन और यह एक वर्ग के पास, मैं एक IllegalArgumentException मिलती है: मैं निम्नलिखित कोड का टुकड़ा है। जिस कक्षा में मैं कॉल कर रहा हूं उसका निर्माता एक स्ट्रिंग [] में एकमात्र तर्क के रूप में होता है। यह भी अजीब बात यह है कि अगर मैं एक पूर्णांक लेने के लिए कन्स्ट्रक्टर बदलता हूं और इंटीजर.TYPE का उपयोग करता हूं और c.newInstance (4) या कुछ कहता हूं, तो यह काम करता है। क्या कोई मुझे समझा सकता है कि मैं क्या गलत कर रहा हूं? धन्यवाद।
संपादित करें ;; पूरा त्रुटि:
java.lang.IllegalArgumentException: wrong number of arguments
[Ljava.lang.String;@2be3d80c
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
क्या आप पूरी त्रुटि पोस्ट कर सकते हैं? –
जोड़ा गया स्टैक ट्रेस :) – de1337ed