java 一种服务器端GWT/ Sencha 服务异步方法

ulmd4ohb  于 2023-01-15  发布在  Java
关注(0)|答案(1)|浏览(125)
@RemoteServiceRelativePath("service/myService")
public interface MyService extends RemoteService {
    Future<MyResult> getAsync(String table); // how to do this ?
    void getAsync(String table, MyCallBack<MyResult> myCallback); // or this ?
    MyResult get(String table); // synchronous
}

注意这不是GWT所需要的Async接口,我实际上希望在我的Java服务中使用异步接口。上面的方法仍然需要转换为与GWT Async兼容。
上面的同步方法将转换如下:

public interface MyServiceAsync {
    void get(String table, AsyncCallback<MyResult> callback);
}
db2dz4w8

db2dz4w81#

你的问题令人困惑:也许你需要的是一个简单的Java回调函数,一种允许方法传递函数(或函数引用)作为参数的机制。2当方法被调用时,它就可以执行传递的参数。3下面是一个如何在Java中创建回调函数的例子:

interface Callback {
    void onComplete();
}

class AsyncTask {
    public void execute(Callback callback) {
        // perform some long-running task here
        // ...

        // when the task is complete, call the callback
        callback.onComplete();
    }
}

class Main {
    public static void main(String[] args) {
        AsyncTask task = new AsyncTask();
        task.execute(new Callback() {
            @Override
            public void onComplete() {
                // this code will be executed when the task is complete
                System.out.println("Task completed!");
            }
        });
    }
}

在此示例中,AsyncTask类具有一个名为execute()的方法,该方法将Callback对象作为参数。execute()方法执行一个长时间运行的任务,当任务完成时,它调用Callback对象的onComplete()方法。
在main方法中,创建AsyncTask类的示例,并使用Callback接口的新示例作为参数调用其execute()方法。回调的onComplete()方法被重写以打印“Task completed

相关问题