7

パラメーター化されたジェネリック型を取るコンストラクターを持つクラスがある場合:

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);

...しかし、それは機能しません。

これには簡単な答えがあると確信しています!

4

2 に答える 2

14

実行時に、これは:

  Map<String,Object>

実際には、パラメーターのない単なる Map です。

通話中

 cls.getConstructor(Map.class) will be enough
于 2012-08-23T22:38:56.843 に答える
4

Map 型だけでコンストラクターを参照できます。汎用パラメーターは実行時に消去されます。

Constructor constructor = Foo.class.getConstructor(Map.class);
于 2012-08-23T22:39:40.817 に答える