使用Constructor参数动态创建Java类

Mak*_*kky 7 java class dynamic instantiation

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

目前我的代码看起来像

Class<HsaInterface> _tempClass = (Class<HsaInterface>) Class.forName(hsaClass);
        _tempClass.getDeclaredConstructor(String.class);
        HsaInterface hsaAdapter = _tempClass.newInstance();
        hsaAdapter.executeRequestTxn(txnData);
Run Code Online (Sandbox Code Playgroud)

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

mil*_*ose 14

你靠近,getDeclaredConstructor()返回一个Constructor你应该使用的对象.此外,您需要将String对象传递给该newInstance()方法Constructor.

Class<HsaInterface> _tempClass = (Class<HsaInterface>) Class.forName(hsaClass);
Constructor<HsaInterface> ctor = _tempClass.getDeclaredConstructor(String.class);
HsaInterface hsaAdapter = ctor.newInstance(aString);
hsaAdapter.executeRequestTxn(txnData);
Run Code Online (Sandbox Code Playgroud)


Sau*_*aul 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);
Run Code Online (Sandbox Code Playgroud)