यहां एक चर Class<?> cls
है, अब मैं एक और Array Class Object
प्राप्त करना चाहता हूं जो घटक प्रकार cls
है।जावा के बारे में: 'स्ट्रिंग.क्लास' से 'स्ट्रिंग []। कक्षा` प्राप्त करें, क्या होगा यदि' स्ट्रिंग.क्लास 'एक "रनटाइम प्रकार" है?
उदाहरण के लिए, यदि cls
= String.class
, मैं String[].class
प्राप्त करना चाहता हूं; यदि cls
= int.class
, मैं int[].class
प्राप्त करना चाहता हूं, तो मुझे क्या करना चाहिए?
तुम देखो, यह String[].class
से String.class
प्राप्त करने के लिए काफी आसान है:
Class<?> arrayCls = String[].class;
if(arrayCls.isArray()){
Class<?> cls = arrayCls.getComponentType();
}
लेकिन मैं रिवर्स करने के लिए आसान तरीका नहीं मिल रहा।
Class<?> clazz = String.class;
Class<?> arrayClass = Array.newInstance(clazz,0).getClass();
है वहाँ किसी भी बल्लेबाज जिस तरह से कृपया ऐसा करने के लिए:
यहाँ एक संभव समाधान है?
उस समाधान के साथ क्या गलत है? – Thilo
@ थिलो समाधान मेरे अनुमान का परिणाम है। यह ठीक काम करता है, लेकिन मुझे यकीन नहीं है कि यह सबसे अच्छा तरीका है या नहीं। इस समाधान को एक सरणी इकाई बनाने की गतिशीलता की आवश्यकता है जो लंबाई 0. – watchzerg
दिलचस्प सवाल है। बस जिज्ञासा है कि आपको सरणी 'कक्षा' ऑब्जेक्ट की आवश्यकता क्यों है? –