我试图使用Java Reflection动态调用类中的某些方法。这些方法具有不同类型的参数量。现在,我正在寻找一种动态调用它们的简单方法:
这是我到目前为止所尝试的内容:
final List<Object> parameters = new ArrayList<Object>();
for (final Class<?> parameterType : method.getParameterTypes()) {
if (parameterType.isPrimitive()) {
// FIXME: use default value of primitive type
final Class<?> nonPrimitiveClass = ClassUtils.primitiveToWrapper(parameterType);
parameters.add(nonPrimitiveClass.newInstance());
} else {
parameters.add(null);
}
}
final Screen currentScreen = (Screen) method.invoke(screenFactory, parameters.toArray());
不幸的是,我尝试获取默认值不起作用,因为newInstance试图调用默认构造函数,例如java.lang.Integer不存在。
是否有一种简单的方法来获取基本类型的默认值 没有任何外部库,除了Apache lang?
是否有另一种使用默认动态调用方法的方法 参数比我的尝试?
提前致谢。