したがって、本質的に同じ呼び出しを行うメソッドがたくさんありますが、唯一の違いはジェネリックのクラス名です。例:
現時点の:
public void methodA(ARequest request, ADelegate delegate)
{
JsonClient<ARequest, AResponse> client = new JsonClient<ARequest, AResponse>(request.ServiceServerUrl, request, new AResponse());
client.sendRequest(delegate);
}
public void methodB(BRequest request, BDelegate delegate)
{
JsonClient<BRequest, BResponse> client = new JsonClient<BRequest, BResponse>(request.ServiceServerUrl, request, new BResponse());
client.sendRequest(delegate);
}
私がやりたいことは次のとおりです。
private void serviceCall<R extends RequestBase, S extends ResponseBase>(ADelegate delegate)
{
JsonClient<R, S> client = new JsonClient<R, S>(request.ServiceServerUrl, request, new AResponse());
client.sendRequest(delegate);
}
public void methodA(ARequest request, ADelegate delegate)
{
serviceCall<ARequest, AResponse>(delegate);
}
public void methodB(BRequest request, BDelegate delegate)
{
serviceCall<BRequest, BResponse>(delegate);
}
これはC#で可能だと思いますが、Javaでこれを適切に行う方法を知りたいだけです。
編集:明確にするために。