簡體   English   中英

如何在Java中傳遞通用類類型

[英]How to pass the generic class type in java

我有一個預定義的類,稱為

ParameterList<Recipient_Type,Subject_Type> {
//some code here...
}

這是通用的接受者類型和主題類型。 我有一個稱為通信的對象,它具有用於設置不同主題的設置方法,例如

correspondence.setSubject1((Subject1)subject)
correspondence.setSubject2((Subject2)subject).

以及設置不同類型的收件人的類似方法,例如

correspondence.setRecipient1((Recipient1)recipient),  
correspondence.setRecipient2((Recipient2)recipient), 
correspondence.setRecipient3((Recipeint3)recipient).

所以基本上我有2種不同的主題類型和3種不同的收件人。 直到這部分代碼,我無法更改任何內容,因為它已經存在一些現有的框架代碼。

現在,我有一個以下方法,該方法將我的對應對象作為參數,並且需要實例化傳遞正確主題和收件人類型的ParameterList類。 對應對象上只會設置一個主題和收件人。 所以在下面的方法

public void doTheJob(Correspondence correspondence){
  //How do I instantiate the ParameterList class provided subject can be any one of the two 
  //and recipient can be any one of the three.
}

您無法在運行時決定泛型類型,因為泛型主要在編譯時使用。 因此,如果您不知道確切的類型參數,請使用?

您可以:

  • 使用? 正如博zh所說
  • 使用(略)更具體? extends WrapperBean ? extends WrapperBean
  • 重構(如果可能的話),以便所有SubjectN類都繼承一個公共超類型,而所有RecipientN類都繼承一個公共超類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM