我正在使用GWT,我创建了一个本机方法,在EverlinkedActions类中调用方法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);
}
}-*/;
感谢您的帮助
答案 0 :(得分:4)
不确定你在这里想要实现什么,但我担心JSNI不能像那样工作。
@es.gwt.client.dash.actions.impl.EverlinkedActions::cmd_addspace([Ljava/lanG/Object;)(vParams);
之类的代码在编译时需要是完全可解析的符号,因为类和方法名称会被其最小化版本替换。