Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否将Java回调函数传递给JSNI方法?_Java_Javascript_Gwt_Jsni - Fatal编程技术网

是否将Java回调函数传递给JSNI方法?

是否将Java回调函数传递给JSNI方法?,java,javascript,gwt,jsni,Java,Javascript,Gwt,Jsni,我想将成功和失败回调Java函数传递给JSNI方法 这是我目前得到的结果,但它不起作用。如何修复它? package c; public class A { test(new Callback<String, String>() { @Override public void onFailure(String reason) { Window.alert("fail"); } @Override public void

我想将成功和失败回调Java函数传递给JSNI方法

这是我目前得到的结果,但它不起作用。如何修复它?

package c;

public class A {

test(new Callback<String, String>() {

    @Override
    public void onFailure(String reason) {
        Window.alert("fail");
    }

    @Override
    public void onSuccess(String result) {
        Window.alert("suc");
    }
});


native void test(Callback<String, String> callback) /*-{

  var callback = $entry(function(event) {
     callback.@c.A.Callback::onSuccess(Ljava/lang/String;)("success!");
  });

}-*/;

}
包c;
公共A类{
测试(新回调(){
@凌驾
公共void onFailure(字符串原因){
窗口警报(“失败”);
}
@凌驾
成功时的公共void(字符串结果){
窗口警报(“suc”);
}
});
本机无效测试(回调)/*-{
var callback=$entry(函数(事件){
callback@c.A.callback::onSuccess(Ljava/lang/String;)(“成功!”);
});
}-*/;
}

您可以通过以下方式调用回调方法:

native void test(Callback<String, String> callback) /*-{
  callback.@com.google.gwt.core.client.Callback::onSuccess(Ljava/lang/Object;)("success!");
}-*/;
本机无效测试(回调)/*-{
callback@com.google.gwt.core.client.callback::onSuccess(Ljava/lang/Object;)(“成功!”);
}-*/;

这是否也适用于回调?当我尝试使用转换为int的返回整数时,它返回了一个类强制转换异常。我发现回调的整数值应使用.intValue(),如:Callback@com.google.gwt.core.client.Callback::onSuccess(Ljava/lang/Object;)(@java.lang.Integer::valueOf(Ljava/lang/String;)(“1”);在这种情况下会调用onFailure()吗?