【发布时间】:2017-01-23 07:38:45
【问题描述】:
我有一门课叫
ServiceImpl
实现接口
Service
我在另一个 jar 中有一个方法,我想调用它,但它需要
Service
作为输入。方法如下:
public void setService(Service service) {
context.setService(service);
}
我尝试用反射来调用这个方法
final ServiceImpl myService = new ServiceImpl(param1, param2);
method = beanClass.getMethod("setService",Service.class);
method.invoke("setService", myService);
但是我得到了错误:
Exception in thread "main" java.lang.IllegalArgumentException: object is not an instance of declaring class
这是说它需要一个服务类,但我传入了一个 ServiceImpl 类型的对象。但是,既然 ServiceImpl 已经实现了 Service,为什么这会是个问题呢?我该如何解决这个问题?
【问题讨论】:
标签: java class reflection interface