[英]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.