2
我使用GWT和我創建的類EverlinkedActions調用該方法cmd_addspace一個本地方法,它現在工作得很好:GWT:使用JSNI機方法:如何調用方法動態
private static native String execute(String functionName, Object[] vParams)/*-{
try{
@es.gwt.client.dash.actions.impl.EverlinkedActions::cmd_addspace([Ljava/lanG/Object;)(vParams);
}catch(e){
alert(e.message);
}
}-*/;
如何我可以使方法名稱動態嗎?它意味着而不是「cmd_addspace」,我想調用方法「functionName」,它的名稱作爲參數在本地方法中傳遞。
而他們的方式,使類名也動態?我想有這樣的事情:
private static native String execute(String className, String functionName, Object[] vParams)/*-{
try{
@es.gwt.client.dash.actions.impl.className::functionName([Ljava/lanG/Object;)(vParams);
}catch(e){
alert(e.message);
}
}-*/;
感謝所有幫助
你想調用Java函數或JavaScript方法嗎?如果是Java,則可以在Java中調用通用方法,傳入名稱並使用反射。 http://stackoverflow.com/questions/160970/how-do-i-invoke-a-java-method-when-given-the-method-name-as-a-string – 2013-05-09 13:56:12
感謝您的鏈接。我已經嘗試過,但我正在獲取此錯誤:java.lang.reflect.Method不能在客戶端調用 – user2318955 2013-05-09 14:01:19
哦,我忘了GWT沒有實現反射。 – 2013-05-09 14:07:04