【发布时间】:2015-04-27 23:52:59
【问题描述】:
我有一个类似的设置。当我尝试使用 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*/
}
}
【问题讨论】:
-
是的,你可以。但我认为这不是你的问题。
-
execRequest需要是静态的吗?静态函数和继承不是一个很好的组合! -
对不起,这不是静态的,我会编辑它
标签: java reflection polymorphism downcast upcasting