簡體   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