【发布时间】:2013-01-07 16:47:31
【问题描述】:
我有一个方法 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 用于从外部调用方法。当这些方法具有原始参数作为类型或接口(列表等)时,它似乎失败了,我知道为什么。
我的问题是: 有什么办法可以保持这种/类似的方式,或者唯一的解决方案是将类型信息(f.e Integer.TYPE 用于基元等)传递给上述方法:
callMethod(String methodName, Object[] parameters, Class[] parameterTypes);
感谢您的帮助。
【问题讨论】:
标签: java reflection parameters