2017-03-01 22 views

回答

18

新的Flow API被设计为reactive stream库(如RxJava和Reactive X)的通用分母。基于Java 9,它们可以使用它们的类型扩展新接口(或者思路去)。虽然在JDK中使用API​​当然很有吸引力,但在Java 9中并不是这样,并且没有具体的计划来介绍它(据我所知)。

关于ObserverObservablethe issue which triggered the deprecation状态:

应用程序开发人员应该考虑使用java.beans中获得更丰富的变化通知模型。或者他们应该考虑java.util.concurrent中的构造,例如队列或信号量以在线程之间传递消息,具有可靠的排序和同步属性。

这些是应用程序开发人员编写新代码的建议。它没有提供更新现有代码或在JDK内执行的操作的建议。我想这是因为这两个案件都应该保持原样。

请注意,Java不使用@Deprecated必然意味着“将被删除”。相反,它也可能意味着“使用更好的替代品”,我认为在这里就是这样。因此,要回答你的问题中的几句话:

在Java 9不流API替代观察和可观察

,如果它不什么呢。

什么都没有。

+4

+1。请注意,由于[JEP 277](http://openjdk.java.net/jeps/277),在未来版本中,也可以使用'@ Deprecated'注释将API指定为删除。我不知道这种新的可能性已被使用到现在。它可能在将来,但我怀疑他们会否弃用Observer/Observable“forRemoval”。 –

+5

Java 9实际上删除了一些在Java 8中被弃用的方法。我不知道这是否是第一次,但它肯定不常见。我从来没有打算说'@ Deprecated' _never_意味着某些东西可能会被删除,但我的措辞是不明确的。感谢您的评论,我意识到这一点,并将其放在_必要_。 – Nicolai

+1

这很有趣。你能分享一个例子吗? –

相关问题