我有帮助调用已知方法的方法Java反射getDeclaredMethod类检查
public static void invoke(Object object, Class<?> callingClass, String methodName, Object[] param)
我能够调用此
for (Method method : callingClass.getDeclaredMethods()) {
if (method.getName().equals("bla")) {
method.invoke(object, param);
}
}
但是,当我试着打
Class[] paramClass = new Class[param.length];
for (int i = 0; i < paramClass.length; i++) {
paramClass[i] = Class.forName(param[i].getClass().getName());
}
Method method = callingClass.getDeclaredMethod(methodName, paramClass);
我遇到了java.lang.NoSuchMethodException。 ,我试图调用的方法是
public void bla(String[] arg, Map<String, String[]> argContext);
我在我的“调用”方法的上方通过,只是为PARAM,阵列由一字符串[]的对象,和一个地图对象从类别中检索.unmodifiableMap(source)
我猜这个问题来自于我的输入是UnmodifiableMap,其中bla方法需要一个常规的Map。这有什么工作?谢谢
param [i] .getClass()确实简化了一点。 但是有没有解决这个问题的方法?我只想在传入参数的情况下调用该方法。 – vda8888