首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java中传递泛型类类型

如何在java中传递泛型类类型
EN

Stack Overflow用户
提问于 2011-10-04 03:51:09
回答 2查看 624关注 0票数 0

我有一个预定义的类,叫做

代码语言:javascript
运行
复制
ParameterList<Recipient_Type,Subject_Type> {
//some code here...
}

它是通用的,可以接受收件人类型和主题类型。我有一个名为通信的对象,它具有用于设置不同类型的主题的setter方法,例如

代码语言:javascript
运行
复制
correspondence.setSubject1((Subject1)subject)
correspondence.setSubject2((Subject2)subject).

以及用于设置不同类型的接收者的类似方法

代码语言:javascript
运行
复制
correspondence.setRecipient1((Recipient1)recipient),  
correspondence.setRecipient2((Recipient2)recipient), 
correspondence.setRecipient3((Recipeint3)recipient).

所以基本上我有2个不同的主题类型和3个不同类型的收件人。直到这部分代码,我不能改变任何东西,因为它是一些现有的框架代码。

现在,我有一个下面的方法,它接受我的通信对象作为参数,需要实例化ParameterList类,传递正确的主题和接收者类型。在通信对象上只有一个主题和接收者设置。因此,在下面的方法中

代码语言:javascript
运行
复制
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.
}
EN

回答 2

Stack Overflow用户

发布于 2011-10-04 04:01:07

您不能在运行时决定泛型类型,因为泛型主要在编译时使用。因此,如果您不知道确切的类型参数,可以使用?

票数 0
EN

Stack Overflow用户

发布于 2011-10-04 04:06:39

您可以执行以下任一操作:

  • 使用?,正如Bozho所说,
  • 使用(稍微)更具体的? extends WrapperBean
  • Refactor (如果可能),以便所有的SubjectN类继承一个公共的超类型,并且所有的RecipientN类继承一个公共的超类型
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7639943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档