gpt4 book ai didi

java - 原始方法的返回数据类型

转载 作者:行者123 更新时间:2023-11-29 06:49:02 24 4
gpt4 key购买 nike

例如,我有一个返回 boolean 值的方法,我正在那里创建一个新线程,很难在线程中返回 boolean 值。

让我用这个例子告诉你我的意思:

public boolean test() {
int a = 5;
int b = 3;

new Thread(() -> {
if (a > b) {
return true; //NOT POSSIBLE
} else {
return false;
}
}).start();
}

这只是一个例子。这行不通,我需要做这样的事情:

private boolean value;

public boolean test() {
int a = 5;
int b = 3;

new Thread(() -> {
if (a > b) {
value = true;
return;
} else {
value = false;
return;
}
}).start();

return value;
}

现在我的问题是,有没有比这更容易的方法?如果我在一个类中有更多这样的方法,这可能会变得困惑。

问候

最佳答案

你要的叫 future ,看一些例子 https://www.baeldung.com/java-future

或者对于 java 8 和更高版本 CompletableFuture https://www.baeldung.com/java-completablefuture ,该指南还有一个示例,说明如何一次等待多个值。

基本上您是在给出一个值的 promise ,接收者可以检查后台线程是否已经交付了该值和/或等待它完成。

您的示例可能如下所示:

public boolean test() throws Exception {
int a = 5;
int b = 3;

CompletableFuture<Boolean> future = CompletableFuture.supplyAsync(() -> {
if (a > b) {
return true;
} else {
return false;
}
});
return future.get();
}

关于java - 原始方法的返回数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55676851/

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