我见过很多例子,我知道讨论的内容.我做的一切都很正确,但我收到了一个错误.这是为什么?我究竟做错了什么?
Class superClass = rootObject.getSuperclass();
Method addErrorMethod = superClass.getDeclaredMethod("addErrorMessage", ErrorType.class, String.class, String.class, String.class);
_log.info(addErrorMethod.getName());
addErrorMethod.invoke(superClass, ErrorType.FIELD, propertyName, message, "");
Run Code Online (Sandbox Code Playgroud)
我得到方法,但当你打电话给调用者.我收到以下错误.
java.lang.IllegalArgumentException: object is not an instance of declaring class
Run Code Online (Sandbox Code Playgroud)
谢谢.
当你调用Method.invoke第一个参数必须是:
null或类本身时.由于你自己传递了类并且你得到了错误,它表明你试图调用的方法不是静态的,所以你应该调用它
addErrorMethod.invoke(rootObject, ErrorType.FIELD, propertyName, message, "");
// ^^^^^^^^^^- assuming it is instance on which we want to invoke this method
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |