带有参数化类型的Java getConstructor(类型)

Mik*_*ame 7 java generics reflection

如果我有一个带有构造函数的类,该构造函数采用参数化的泛型类型:

public class Foo {
    public Foo(Map<String, Object> data) {
      ...
    }
}
Run Code Online (Sandbox Code Playgroud)

...如果我想调用,如何引用该参数化Map?

Constructor constructor = cls.getConstructor(/*the Map class! */)
Run Code Online (Sandbox Code Playgroud)

(clsFoo类在哪里.)

我想做的事情如下:

Constructor constructor = cls.getConstructor(Map<String,Object>.class);
Run Code Online (Sandbox Code Playgroud)

......但这不起作用.

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

Eug*_*ene 14

在运行时,这个:

  Map<String,Object>
Run Code Online (Sandbox Code Playgroud)

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

调用

 cls.getConstructor(Map.class) will be enough
Run Code Online (Sandbox Code Playgroud)