我有一段代码用于将传递的字符串表示形式Class.getCanonicalName()
转换为相应的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);
}
这对我来说似乎很讨厌,所以有什么干净的方法吗?