当我执行以下Java代码
时map = new HashMap<>();
cl = new Configuration().getClass();
Method[] m = cl.getMethods();
for (int i = 0; i < m.length; i++) {
if (!m[i].getName().startsWith("get")) {
m = (Method[]) ArrayUtils.remove(m, i);
}
}
for (int i = 0; i < m.length; i++) {
try {
Object[] obj = {};
String key = m[i].getName().substring(3);
cl = Class.forName("com.nttdata.tbridge.platformmonitoring.configuration.Configuration");
map.put(key, m[i].invoke(new Configuration(), obj).toString());
} catch (Exception e) {
e.printStackTrace();
}
}
我收到以下错误:
java.lang.IllegalArgumentException: wrong number of arguments
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
此代码有助于在我的浏览器中打印我的应用程序所包含的文件。在我的项目中的类上应用反射,我调用Configuration
,其中包含用于读取文件的函数。好像我在invoke()
函数中遗漏了一些东西?