Scala Futures和java 8 CompletableFuture
在
Java 8中引入了CompletableFutures带来了scala.concurrent.Future中可用的语言特性,如单一转换.
>有什么区别,为什么Scala开发人员应该喜欢Scala Futures超过java 8 CompletableFuture? 解决方法
改写@ dk14在评论中指出,我会说,CompletableFuture没有惯用的Scala api. 对于scala开发人员的影响是: 由于事实不符合单一类型常用的Scala方法惯例,因此缺乏理解 还有值得注意的是,Java CompletableFuture并不完全等同于Scala Future.这是一场史无前兆和承诺的融合. 考虑到上面列出的缺点,在Scala中使用CompletableFuture没有什么意义,除非您正在设计应该与java无缝互操作的公共api.
Akka建立在scala之上,有时候会使用scala Futures.这意味着,如果你有一部分代码用java编写,那么值得将其包装在scala api(使用akka.dispatch java api)中,以便能够轻松地使用它与akka. 例如,您正在java中实现akka actor.当处理消息时,你想做一些非阻塞的阅读,当完成后,应该产生结果作为一个消息给另一个actor. 您可以做的是将您的I / O放入java Callable,然后使用akka.dispatch.Futures#future获取scala的未来,然后您可以利用akka pipe将未来的结果作为一个消息传递给一些演员. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |