Java 9 中 Publisher 接口的规则是什么?
javaobject oriented programmingprogramming更新于 2025/10/23 6:04:17
Publisher 是无限数量的序列元素的提供者,根据从其订阅者收到的需求发布这些元素。Publisher<T> 接口负责发布 T 类型的元素,并提供 subscribe() 方法供订阅者连接到它。
public interface Publisher<T> {
public void subscribe(Subscriber<? super T> s);
发布者接口规则:
- 发布者向订阅者发出信号的onNext()方法总数必须始终小于或等于订阅者的订阅请求的元素总数。
- 发布者可以发出比请求的更少的onNext()方法,并通过调用onComplete()或onError()方法终止订阅。
- onSubscribe()、onNext()、onError()和必须以串行方式向 Subscriber 发出 onComplete() 方法信号。
- 如果 Publisher 失败,则必须发出 onError() 方法信号。
- 如果 Publisher 成功终止,则必须发出 onComplete() 方法信号。
- 如果 Publisher 在 Subscriber 上发出 onError() 或 onComplete() 方法信号,则必须取消订阅者的订阅。
- 一旦终端状态发出信号(onError()、onComplete()),就要求不能再发生任何信号。
- 如果取消订阅,其订阅者必须停止信号。
- Publisher.subscribe() 方法必须在向该 Subscriber 发出任何其他信号之前,在提供的订阅者上调用 onSubscribe() 方法并正常返回,除非提供的订阅者为空。在这种情况下,它必须向调用者抛出 NullPointerException 。
- Publisher.subscribe() 方法可以根据需要多次调用,每次调用不同的订阅者。
- 一个 Publisher 可以支持多个订阅者,并决定每个订阅是否可以是 单播 或 多播。
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

