繁体   English   中英

抽象方法应包含哪些参数

[英]What parameters should be in abstract method

我有一个抽象的Class Client和4 Client1 Client2 ...

每个客户线:

    response = service.iszr(params);

响应和参数取决于类

在Class1中,这是

Client1ResponseType response
Client1params params

现在我想添加到抽象类方法中:

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

但我不知道应该是哪种类型

我尝试这样的想法:

  protected abstract <I, O> void sendRequest(I input, O output);

和儿童

  @Override
  protected <Client1ResponseType, Client1params> void sendRequest(Client1ResponseType input,
      Client1params output) {
    output = service.iszrRobCtiAifo(input);
  }

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

我无法完全理解您实际上要做什么。

但是您想以某种方式使其通用?

尝试对象

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

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

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

    abstract class Client <I extends SOME_CLASS1, O extends SOME_CLASS2>

其中SOME_CLASS1是第一个参数的子类型,而SOME_CLASS2是第二个参数的子类型,如果需要,两者都可以是Object

您的抽象方法如下所示:

    protected abstract void sendRequest(I response, O params);

扩展类时,需要指定如下类型:

    class Client1 extends Client <Client1ResponseType, Client1params>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM