[英]GWT: Native method using JSNI: how to call methods dynamically
我正在使用GWT,並且創建了一個本地方法,該方法在類EverlinkActions中調用方法cmd_addspace,並且現在可以正常使用:
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);
}
}-*/;
謝謝你的幫助
不知道您要在這里實際實現什么,但是恐怕JSNI不能那樣工作。
諸如@es.gwt.client.dash.actions.impl.EverlinkedActions::cmd_addspace([Ljava/lanG/Object;)(vParams);
在編譯時需要將其作為完全可解析的符號,因為類和方法名稱已被其最小化版本取代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.