0
私は別のスレッドでいくつかのメソッドを実行したいが、あるスレッドの結果を別のスレッドに渡したいという状況があります。クラスには以下のメソッドがあります。私は印刷結果に乗算する減算に加えて結果を渡すためにしようとしています複数のthenApply in completableFuture
public static void main(String[] args) {
int a = 10;
int b = 5;
CompletableFuture<String> cf = new CompletableFuture<>();
cf.supplyAsync(() -> addition(a, b))
.thenApply(r ->subtract(20,r)
.thenApply(r1 ->multiply(r1, 10))
.thenApply(r2 ->convert(r2))
.thenApply(finalResult ->{
System.out.println(cf.complete(finalResult));
}));
System.out.println(cf.complete("Done"));
}
:ここ
public static int addition(int a, int b){
System.out.println((a+b));
return (a+b);
}
public static int subtract(int a, int b){
System.out.println((a-b));
return (a-b);
}
public static int multiply(int a, int b){
System.out.println((a*b));
return (a*b);
}
public static String convert(Integer a){
System.out.println((a));
return a.toString();
}
はmainメソッドです。しかし、コンパイルエラーが発生しています。ネストされたthenApply()を実行できないように見えます。私たちがこれを行う方法はありますか? google上でそれを検索し、有用なリンクを見つけました。http://kennethjorgensen.com/blog/2016/introduction-to-completablefuturesしかし、多くの助けは見つかりませんでした。
おかげでルーベンこれは動作しますこれは私が探していたまさにです。。。 – SarveshKaushal