के साथ आदिम प्रकारों का उपयोग करना मेरे पास कोड का एक टुकड़ा है जिसका उपयोग द्वारा Class
के संबंधित उदाहरणों में स्ट्रिंग प्रस्तुतियों को चालू करने के लिए किया जाता है। यह आमतौर पर ClassLoader.loadClass("className")
का उपयोग करके किया जा सकता है। हालांकि, यह ClassNotFoundException
फेंकने वाले आदिम प्रकारों में विफल रहता है। एकमात्र समाधान मैं आया भर में कुछ इस तरह था:क्लासलोडर
private Class<?> stringToClass(String className) throws ClassNotFoundException {
if("int".equals(className)) {
return int.class;
} else if("short".equals(className)) {
return short.class;
} else if("long".equals(className)) {
return long.class;
} else if("float".equals(className)) {
return float.class;
} else if("double".equals(className)) {
return double.class;
} else if("boolean".equals(className)) {
return boolean.class;
}
return ClassLoader.getSystemClassLoader().loadClass(className);
}
कि बहुत मेरे लिए बुरा लगता है, इसलिए इसके लिए किसी भी स्वच्छ दृष्टिकोण है?
आप जावा 7 में हैं, तो आप स्ट्रिंग पर एक 'switch' कोशिश कर सकते हैं। –
ओह, यह जानना अच्छा है। हालांकि, मुद्दा यह है कि मैं String.equals का उपयोग करके कुछ प्रकार की जांच नहीं करना चाहता हूं। यह बुरा हिस्सा है। – aRestless