如何使用Java 9流接口/将它们包含在Java 9中的重点是什么?

use*_*547 6 java reactive-programming rx-java java-9

首先,我必须说我对反应式编程没有多少经验.

由于JDK 9(Flow及其嵌套接口)中只有少数接口,因此JDK 9显然不包含像RxJava这样的反应库.

在Javadoc,有对的implentations一些例子Publisher,SubscriptionSubscriber.但这些似乎相当低级,没有任何反应操作员或处理背压.

那么将这些接口包含在JDK中有什么意义呢?

反应库的供应商是否应该使用它们,以便那些Java实现(如RxJava)使用一组通用的接口?(类似于JPA和Hibernate?)

aka*_*okd 10

它主要允许Java本身在未来的某个版本内部使用反应式编程,例如Reactive JDBC,Networking,IO等.在概念上,它也可以作为互操作的新拉力点,但是,反应流已经存在这样的反弹点.通过Java 6要求定位更多的受众.

正如你所提到的那样,拥有4个接口并且SubmissionPublisher它本身的使用有限.如果Java具有类似于Kotlin和C#的扩展方法,那么包含接口可能会产生更有趣的影响.

不幸的是,这也意味着现有的库必须使用桥接器在Java 9 Flow和Reactive-Streams之间进行转换和/或用Java 9 Flow API重新实现整个库 - 切断任何没有Java 9的人(即Android).

主要的图书馆已经有这样的桥梁(RxJava 2 Jdk 9 Interop,Reactor-Core Interop),而Reactive-Streams 最终将拥有自己的桥梁.还有一个为Java 9特性编写的原型反应库.

  • 只是为了添加到这个令人印象深刻的列表,*存在*一个Android的Flow backport:[streamsupport-flow](https://sourceforge.net/projects/streamsupport/) (2认同)