我有一个带有参数的方法 callMethod:methodName (String) 和 parameters(Object[])。现在,一开始对我来说一切似乎都很好,但我偶然发现了一个问题。您必须知道对象的类型才能使用反射。到目前为止,我是这样确定的:
Class[] getParameterTypes(Object[] parameters) {
Class[] parameterTypes = new Class[parameters.length];
for (int i = 0; i < parameters.length; i++) {
parameterTypes[i] = parameters[i].getClass();
}
return parameterTypes;
}
callMethod 用于从外部源调用方法。当这些方法具有原始参数作为类型或接口(列表等)时,它似乎失败了,我知道为什么。
我的问题是:有什么办法可以保持这种/类似的方式,或者唯一的解决方案是将类型信息(用于基元的 fe Integer.TYPE 等)传递给上述方法:
callMethod(String methodName, Object[] parameters, Class[] parameterTypes);
谢谢你的帮助。