首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有参数化类型的Java (GetConstructor)

带有参数化类型的Java (GetConstructor)
EN

Stack Overflow用户
提问于 2012-08-24 06:34:47
回答 2查看 3.3K关注 0票数 7

如果我有一个带有构造函数的类,这个构造函数接受参数化的泛型类型:

代码语言:javascript
复制
public class Foo {
    public Foo(Map<String, Object> data) {
      ...
    }
}

..。如果我想调用以下代码,如何引用参数化Map类:

代码语言:javascript
复制
Constructor constructor = cls.getConstructor(/*the Map class! */)

(其中cls是Foo类。)

我想做一些类似的事情:

代码语言:javascript
复制
Constructor constructor = cls.getConstructor(Map<String,Object>.class);

..。但这并不管用。

我相信这个问题有一个简单的答案!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-24 06:38:57

在运行时,这是:

代码语言:javascript
复制
  Map<String,Object>

实际上只是一个Map,没有任何参数。

呼叫

代码语言:javascript
复制
 cls.getConstructor(Map.class) will be enough
票数 14
EN

Stack Overflow用户

发布于 2012-08-24 06:39:41

您可以仅通过Map类型来引用构造函数。在运行时擦除通用参数:

代码语言:javascript
复制
Constructor constructor = Foo.class.getConstructor(Map.class);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12100955

复制
相关文章

相似问题

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