使用Constructor参数动态创建Java类

时间:2011-10-03 12:59:56

标签: java class dynamic instantiation

我必须动态创建一个类,但我想使用类构造函数传递参数。

目前我的代码看起来像

Class<HsaInterface> _tempClass = (Class<HsaInterface>) Class.forName(hsaClass);
        _tempClass.getDeclaredConstructor(String.class);
        HsaInterface hsaAdapter = _tempClass.newInstance();
        hsaAdapter.executeRequestTxn(txnData);

如何使用参数调用构造函数?

3 个答案:

答案 0 :(得分:14)

你离得很近,getDeclaredConstructor()会返回你应该使用的Constructor个对象。此外,您需要将String对象传递给newInstance()的{​​{1}}方法。

Constructor

答案 1 :(得分:6)

Class<HsaInterface> _tempClass = (Class<HsaInterface>) Class.forName(hsaClass);

// Gets the constructor instance and turns on the accessible flag
Constructor ctor = _tempClass.getDeclaredConstructor(String.class);
ctor.setAccessible(true);

// Appends constructor parameters
HsaInterface hsaAdapter = ctor.newInstance("parameter");

hsaAdapter.executeRequestTxn(txnData);

答案 2 :(得分:1)

Constructor constructor = _tempClass.getDeclaredConstructor(String.class);
Object obj = constructor.newInstance("some string");