如果我有一个带有带参数泛型类型的构造函数的类:
public class Foo {
public Foo(Map<String, Object> data) {
...
}
}
...如果我想调用,我该如何引用该参数化Map:
Constructor constructor = cls.getConstructor(/*the Map class! */)
(其中cls
是Foo类。)
我想做类似的事情:
Constructor constructor = cls.getConstructor(Map<String,Object>.class);
......但这不起作用。
我确信这有一个简单的答案!
答案 0 :(得分:13)
在运行时,这:
Map<String,Object>
实际上只是一张没有任何参数的地图。
致电
cls.getConstructor(Map.class) will be enough
答案 1 :(得分:4)
您可以仅通过Map类型引用构造函数。通用参数将在运行时删除:
Constructor constructor = Foo.class.getConstructor(Map.class);