2011-10-03 4 views
6

클래스를 동적으로 생성해야하지만 클래스 생성자 전달 매개 변수를 사용하고 싶습니다.Java 클래스 동적으로 생성자 매개 변수로

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

가 어떻게이 매개 변수를 사용하여 생성자를 호출 할 수 있습니다처럼

현재 내 코드가 보인다? 당신은 사랑 받고

답변

13

getDeclaredConstructor() 당신이 사용하고있는 것으로 가정하고 Constructor 개체를 반환합니다. 또한 String 개체를 의 newInstance() 메서드에 전달해야합니다.

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); 
관련 문제