是否将Java回调函数传递给JSNI方法?
我想将成功和失败回调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
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()吗?