2
我有我的構造有問題,我不能用我的構造函數中添加參數概率與getConstructor(參數):java.lang.NoSuchMethodException:
我的代碼:
import inteToM.CreateFileAction; // said not use import
import dto.m.CreateFile;
//...
// code
Class<?> dtoClass = Class.forName("dto.mToInte.CreateFile");
DtoM dto = (DtoM) JAXB.unmarshal(sr, dtoClass);
Class<?> actionClass = Class.forName("inteToM.CreateFileAction");
Constructor<?> actionConstruct = actionClass.getConstructor(); //dto.getClass()
ActionM aAction = (ActionIM) actionConstruct.newInstance(dto); // not working
ActionM bAction = (ActionIM) actionConstruct.newInstance(); // work
我的課:CreateFichierAction
public class CreateFileAction {
import dto.mToInte.CreateFile;
public CreateFileAction() {
System.out.println(" constructor null");
}
public CreateFileAction (CreateFile file) {
System.out.println(" constructor not null");
this.file_c= file;
}
}
我error : java.lang.NoSuchMethodException:
所以我不明白爲什麼我不能添加參數與我的構造函數。
我有一個概率與方法:getContructor()
; 如果我有這樣的:
Constructor<?> actionConstruct = actionClass.getConstructor(CreateFileAction.class);
我有這樣的錯誤:
java.lang.NoSuchMethodException: inteToM.CreateFileAction.<init>(inteToM.CreateFileAction)
如果我有這樣的:
Constructor<?> actionConstruct = actionClass.getConstructor(dto.m.CreateFile.class);
我有這樣的:
java.lang.NoSuchMethodException: inteToM.CreateFileAction.<init>(dto.m.CreateFile)
感謝幫幫我。
爲什麼不使用真正的'.class'得到'Class'對象?如果你真的知道你想反映哪個類,那麼你不需要'forName'。 –
我試試這個:ActionM aAction =(ActionIM)actionConstruct.newInstance(CreateFile.class); //不起作用 - 我有同樣的錯誤。 – Hann
我的意思是你應該用'CreateFile.class'而不是'forName'來獲得'actionClass'。 –