jjzjj

CompletionStage

全部标签

java - 是否有一个 java8 标准库类表示 "possibly with exception"与 java.util.Optional 表示 "possibly null"的方式相同?

我有一个名为sayCalculationOutcome的类(class)和FileHashOutcome.他们的构造函数有(ActualResult,Throwable)参数,并在CompletionStage链的末尾我有handle(XxxOutcome::new).如果我可以写成sayPossiblyWithError可能会使意图更清晰并节省一些样板文件.编辑:人们要求示例代码...classFileHashOutcome{privatefinalStringhash;privatefinalThrowablethrowable;FileHashOutcome(Stringhash

java - Spring Boot 为返回 CompletionStage 的请求运行过滤器两次

我遇到了一个问题,当方法返回CompletionStage时,我的过滤器运行了两次。从关于RequestMapping(here)的文档中,它是受支持的返回值。ACompletionStage(implementedbyCompletableFutureforexample)whichtheapplicationusestoproduceareturnvalueinaseparatethreadofitsownchoosing,asanalternativetoreturningaCallable.由于项目非常复杂,并发代码很多,所以我创建了一个新的简单的spring-boot项目。这

Java 多嵌套 CompletionStage 相当于 "flatMap"?

所以考虑到我有以下示例:CompletionStagetokenFuture=getToken();CompletionStage>>>result=tokenFuture.thenApply(token->{WSRequestrequest=ws.url(url).setHeader("Authorization","Bearer"+token);CompletionStageresponse=request.post(json);returnresponse.thenApply(r->{if(r.getStatus()==201){returnCompletableFuture.s

java - 从java中的CompletionStage获取值

我在java8中使用play2.5。我正在向服务器发出POST请求WSRequestrequest=ws.url("http://abababa.com");WSRequestcomplexRequest=request.setHeader("X-API-Key","xxxxxx").setHeader("Content-Type","application/x-www-form-urlencoded")CompletionStageresponsePromise=complexRequest.post("grant_type=password"+"&username=xxxxx&pa

java - 如何组合 3 个或更多 CompletionStages?

如果有2个CompletionStages,我可以将它们与thenCombine方法结合起来:CompletionStageaCompletionStage=getA();CompletionStagebCompletionStage=getB();CompletionStagecombinedCompletionStage=aCompletionStage.thenCombine(bCompletionStage,(aData,bData)->combine(aData,bData));如果我有3个或更多CompletionStage,我可以创建一个thenCombine方法链,但我

java - CompletionStage 是否总是将异常包装在 CompletionException 中?

CompletionStageJavadoc指出:[...]ifastage'scomputationterminatesabruptlywithan(unchecked)exceptionorerror,thenalldependentstagesrequiringitscompletioncompleteexceptionallyaswell,withaCompletionExceptionholdingtheexceptionasitscause.看到异常完成总是在CompletionException中包装异常,为什么exceptionally()、whenComplete()

java - 'CompletionStage' 和 'CompletableFuture' 有什么区别

我在它们每个中都看到了一个示例,但我需要确切地知道deep中的区别是什么,因为有时我认为我可以同时使用它们来获得相同的结果,所以我想知道以便我可以选择正确的?使用它们各自有什么好处?就像这个例子一样:publicCompletionStagegetNextQueryUUID(){returnCompletableFuture.supplyAsync(()->{StringnextId=dbRequestService.getNextRequestQueryUUID();returnok(nextId);},executor);}publicCompletableFuturegetNex