您不能,因为基元不是对象。
您目前正在尝试的还没有实例化-
它正在加载一个类。但是您不能对原始对象执行此操作。
int确实是用于
int类型的名称,无论何时获取其
Class对象(例如
method.getReturnType(),通过反射),但您都无法使用加载它
forName()。
参考:反射教程:
如果一个类的全限定名称可用,则可以使用静态方法Class.forName()获得相应的Class。 不能用于基本类型
实例化原语的一种解决方案是使用commons-lang
ClassUtils,它可以获取与给定原语相对应的包装器类:
if (clazz.isPrimitive() { clazz = ClassUtils.primitiveToWrapper(clazz);}clazz.newInstance();请注意,这假定您具有
Class表示int类型的类型-
通过反射或通过文字(
int.class)。但是超出我的范围的是用字符串表示的用例。您可以
forName("java.lang.Integer")改用。


