Java 抽象方法中应该包含哪些参数

Java 抽象方法中应该包含哪些参数,java,Java,我有一个抽象类Client和4个子类Client1Client2 每个客户线: response = service.iszr(params); 其中响应和参数取决于类 在1班,这是 Client1ResponseType response Client1params params 现在我想向抽象类方法添加: protected abstract void sendRequest(?? response, ?? params); 但是我不知道应该是什么类型的 我试着这样想:

我有一个抽象类
Client
和4个子类
Client1
Client2

每个客户线:

    response = service.iszr(params);
其中响应和参数取决于类

在1班,这是

Client1ResponseType response
Client1params params
现在我想向抽象类方法添加:

  protected abstract void sendRequest(?? response, ?? params);
但是我不知道应该是什么类型的

我试着这样想:

  protected abstract <I, O> void sendRequest(I input, O output);
    protected abstract void sendRequest(I response, O params);
    class Client1 extends Client <Client1ResponseType, Client1params>
受保护的抽象无效发送请求(I输入,O输出);
还有儿童

  @Override
  protected <Client1ResponseType, Client1params> void sendRequest(Client1ResponseType input,
      Client1params output) {
    output = service.iszrRobCtiAifo(input);
  }
@覆盖
受保护的void sendRequest(客户端1响应类型输入,
客户端1参数输出){
输出=服务.iszrRobCtiAifo(输入);
}

但是没有成功。存在编译错误。我做错了什么?

我不能完全理解你到底想做什么

但你想用某种方式让它变得通用

尝试对象

  protected abstract void sendRequest(Object response, Object params);

您可以将此变量扩展到其他泛型,如
Object[]

在抽象类的声明中,您需要添加以下内容:

    abstract class Client <I extends SOME_CLASS1, O extends SOME_CLASS2>
扩展类时,需要指定以下类型:

  protected abstract <I, O> void sendRequest(I input, O output);
    protected abstract void sendRequest(I response, O params);
    class Client1 extends Client <Client1ResponseType, Client1params>
类Client1扩展了客户端

如果您有任何问题,请告诉我。

查看我的回复,我编辑了它。嗯,但问题是响应和参数是生成的类,它不扩展任何内容,我不能编辑它们,因为我不能使用抽象类客户端是的,你可以@hudi,每个类都扩展对象(:@hudi然后使用回答中提到的
对象
,并根据需要对其进行类型转换。不,这不是这个回答的重点,当您扩展抽象类时,您将指定这些类型,因此不再需要进行类型转换。在
客户端1
中,
I
将是
客户端1响应类型
,而
O
将是be
Client1params
如您所需