gpt4 book ai didi

java - 从异步调用返回一个值到 run 方法

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:54 27 4
gpt4 key购买 nike

我有一个必须返回 boolean 值的方法。该方法具有对 run 方法的异步调用。在运行方法中,我必须在封闭方法中设置变量。下面是我的代码。

private boolean isTrue() {
boolean userAnswer;
Display.getDefault().asyncExec(new Runnable() {
public void run() {
userAnswer = MessageDialog.openQuestion(new Shell(), "some message", "some question?");
}
});
return userAnswer;
}

这段代码给出了错误——“userAnswer”必须是最终的,如果我让它成为最终的,我就不能给它赋值。请提出一种处理这种情况的方法。

最佳答案

有很多模式可以实现这一点。也许最简单的使用某种回调函数,例如:

interface Callback {
void onSuccess(boolean value);
}

private boolean isTrue(final Callback callback) {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
boolean userAnswer = MessageDialog.openQuestion(new Shell(), "some message", "some question?");
callback.onSuccess(userAnswer);
}
});

}

然后像这样调用方法:

isTrue(new Callback() {
@Override
public void onSuccess(boolean value) {
// do some stuff
}
});

关于java - 从异步调用返回一个值到 run 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18051276/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com