比如,我有一个类型字符串java.lang.Integer, 有一个字符串"123"
String className = "java.lang.Integer";
String value="123";
如何让value转换成Integer类型的?
String className = "java.lang.Integer";
String value="123";
如何让value转换成Integer类型的?
比如有一个Map<String, String>里,记录了。
key value
123 java.lang.Integer
"asdf" java.lang.String
2.3 java.lang.Float怎么写才能让key跟据value里面记录的类型转换成对应的类型?
就可以把字符串转换成整型数了
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);
以你的为例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();
}
}
Object o = clazz.newIntance();
Field field = o.getField("value");
field.setAccessable(true);
field.set(o, 123);Integer intValue = (Integer)o;
改一下
Field field = o.getClass().getDeclaredField("value");
反射对象,一句话就行了
Integer inte = Class.forName("java.lang.Integer").newInstance();