我有一个字符串值和一个具体类型的类对象。
所以我的问题是如何将字符串值转换为该类型?
看起来唯一可能的方法是做这样的事情:
private Object convertTo(String value, Class type) {
if(type == long.class || type == Long.class)
return Long.valueOf(value);
if(type == int.class || type == Integer.class)
return Integer.valueOf(value);
if(type == boolean.class || type == Boolean.class)
return Boolean.valueOf(value);
...
return value;
}
但那看起来很难看......有没有更好的方法呢?
答案 0 :(得分:1)
我真正想要的是某种泛型类型转换。对我来说最有效的是来自Spring:
org.springframework.core.convert.support.DefaultConversionService
答案 1 :(得分:0)
根据你的描述,如果你有:
String var = "variable";
Class<?> type = Class.forName("your_class");// Your type
Object o = type.cast(var);
现在可能会发生三件事:
答案 2 :(得分:0)
public class Sample {
/**
* @param args
*/
public static void main(String[] args) {
List<Class<?>> classList= new ArrayList<Class<?>>();
classList.add(String.class);
classList.add(Double.class);
try {
Class<?> myClass = Class.forName("java.lang.Double");
//Object newInstance = myClass.newInstance();
for (Object object : classList) {
if(myClass.equals(object)){
//do what you like here
System.out.println(myClass);
}
}
} catch (ClassNotFoundException e) {
}
}
}