已知一个类名的字符串,如何转换成对应类型?
比如,我有一个类型字符串java.lang.Integer, 有一个字符串"123"
String className = "java.lang.Integer";
String value="123";
如何让value转换成Integer类型的?
[解决办法]
如果用反射:
public class Test {
public static void main(String[] args){
String className = "java.lang.Integer";
String value = "123";
try {
Class c = Class.forName(className);
Method m = c.getMethod("parseInt", value.getClass());
Integer i = (Integer)m.invoke(className.getClass() , value);
System.out.println(i);
} catch (Exception e) {
e.printStackTrace();
}
}
不用反射:Integer i = Integer.parseInt(value);
[解决办法]
common-beanutils.jar里有个ConvertUtils.convert完全可以实现
以你的为例
for (String str : map.keySet()) { String type = map.get(str); try { Class clazz = Class.forName(type); Object returnObj = ConvertUtils.convert(str, clazz); System.out.println(returnObj); } catch (Exception e) { e.printStackTrace(); } }
[解决办法]
Integer i = Integer.parseInt(value)
[解决办法]