2009-07-09 39 views
5

के लिए एक आदिम सरणी के वर्ग को प्राप्त करने का उचित तरीका मैं बाइट सरणी में एक विधि को कॉल करने के लिए प्रतिबिंब का उपयोग करने का प्रयास कर रहा हूं। बाइट [] लाइन परजावा: प्रतिबिंब

Class myClass = anObject.getClass(); 
Class[] parameterTypes = 
{byte[].getClass();}; 

लेकिन वह काम नहीं करता (कक्षा की उम्मीद,} उम्मीद):

मैं कर बंद शुरू कर रहा हूँ। किसी को पता है कि मुझे क्या करना चाहिए? ऑब्जेक्ट पर कास्ट करें और घोषणा करें कि विधि ऑब्जेक्ट लेती है?

उत्तर

11

इस प्रयास करें:

Class[] parameterTypes = new Class[] {byte[].class}; 
+0

महान है, धन्यवाद, कि काम किया। मैं वास्तव में समझ नहीं पा रहा हूं कि क्यों पूर्णांक [] x = {5}; और इंटीजर [] वाई = {नया इंटीजर (5)}; काम। – jbu

+0

ठीक है, 'कक्षा [] पैरामीटर टाइप = {बाइट []। वर्ग}' आपके उदाहरणों के रूप में भी काम करता है। आपके मूल कोड के साथ समस्या बाइट [] घोषणा पर getClass() _instance_ विधि को आमंत्रित करने का प्रयास कर रही है। – ChssPly76

+0

(और शायद यह 'कक्षा [] ' –

संबंधित मुद्दे