为了更好地理解我的问题,请参阅以下课程:
public interface Invoker<R> {
public String getName();
public R getResult();
}
执行:
public class RepairFetcher implements Invoker<List<String>> {
@Override
public String getName() {
return this.getClass().getSimpleName();
}
@Override
public List<String> getResult() {
return new ArrayList<String>();
}
}
出错的类:
public class OperationService {
public <R> R invoke(Class<R> invoker, Object... parameters) {
WebserviceOperation<R> operation = new WebserviceOperation<R>(invoker);
Invoker<R> instance = operation.getInstance();
return instance.getResult();
}
}
主要类:
public class Main {
public static void main(String[] args) {
OperationService operationService = new OperationService();
operationService.invoke(RepairFetcher.class, new Object[] {});
}
}
问题: 此时方法
operationService.invoke(RepairFetcher.class, new Object[] {});
返回一个 RepairFetcher,由于调用方法中的参数,这并不奇怪:
类调用者
它返回 R,它是一个 RepairFetcher.class。
我想要 的我不希望调用方法返回 RepairFetcher 类,但我希望它返回声明的类型,即 List<String>。
这是否可能,如果可以,如何实施?
提前致谢!