1

我有一个类似的设置。当我尝试使用 java Reflections 调用execRequest方法并在parameterArray中传递DelRequest的子类实例时,我得到一个 NoSuchMethodFound 异常

DelRequest delReq=new DelRequest();
delReq.setMsg("something");
Request req=(Request) delReq;

我有很少的服务方法和之间,然后最终我调用以下代码行。请注意,这次我通过 req定义的超类实例是方法签名public String execRequest(Request request)

lClass.getMethod( "execRequest", parameterArray)

这是我的基本设置,请指出我错在哪里,是否可以完成

class DelRequest extends Request {
private String msg;


 /* getters and setters */
}

class Request {
}



class ExecuteRequest{
public String execRequest(Request request){
/* request do something*/
}

}
4

1 回答 1

0

反射 API 要求您使用参数的声明类型。因此,即使您可以execRequest使用 a调用DelRequest,您也需要将其Request.class用作getMethod.

parameterTypes参数是一个对象数组,按照Class声明的顺序标识方法的形式参数类型。如果 parameterTypes为 null,则将其视为空数组。

于 2015-02-25T19:52:24.597 回答