2011-10-03 15 views
6

Muszę utworzyć klasę dynamicznie, ale chcę użyć parametru przechodzącego klasy konstruktora.Klasa Java Dynamicznie z parametrem Konstruktora

Obecnie mój kod wygląda

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

Jak mogę wywołać konstruktor z parametrem?

Odpowiedz

13

Masz blisko, getDeclaredConstructor() zwraca Constructor obiekt Miałeś być używany. Ponadto musisz przekazać obiekt String do metody newInstance() tej metody tej Constructor.

Class<HsaInterface> _tempClass = (Class<HsaInterface>) Class.forName(hsaClass); 
Constructor<HsaInterface> ctor = _tempClass.getDeclaredConstructor(String.class); 
HsaInterface hsaAdapter = ctor.newInstance(aString); 
hsaAdapter.executeRequestTxn(txnData); 
1
Constructor constructor = _tempClass.getDeclaredConstructor(String.class); 
Object obj = constructor.newInstance("some string"); 
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); 
Powiązane problemy