Java 9 中订阅者接口的规则是什么?
javaobject oriented programmingprogramming更新于 2025/10/22 8:44:17
订阅者 接口通过 onNext() 方法订阅发布者以接收项目,通过 onError() 方法订阅错误消息,或通过 onComplete() 方法订阅不再需要项目的信号。在这些事情发生之前,发布者会调用 onSubscription() 方法。
public interface Subscriber<T> {
public void onSubscribe(Subscription s);
public void onNext(T t);
public void onError(Throwable t);
public void onComplete();
订阅者接口规则:
- 订阅者必须通过 Subscription.request(long n) 方法来调用接收 onNext() 信号。
- Subscriber.onComplete() 和 Subscriber.onError(Throwable t) 方法不得调用 Subscription 或 Publisher 上的任何方法。
- Subscriber.onComplete() 和 Subscriber.onError(Throwable t) 方法必须在收到信号后考虑取消 Subscription。
- 如果订阅者已经收到 onSubscribe() 信号,则必须在给定 Subscription 上调用 Subscription.cancel() 方法有一个活动的订阅。
- 如果不再需要订阅,订阅者必须调用 Subscription.cancel() 方法。
- 订阅者确保其订阅的请求和取消方法的所有调用都是按顺序执行的。
- 如果仍有待处理的请求元素,订阅者必须在调用 Subscription.cancel() 方法后接收一个或多个 onNext() 信号。此方法不保证立即执行底层清理操作。
- 订阅者必须接收 onComplete() 信号,无论是否先前调用 Subscription.request(long n)。
- 订阅者必须接收 onError() 信号,无论是否先前调用 Subscription.request(long n)。
- 订阅者确保对其信号方法的所有调用都在处理相应信号之前发生。这意味着订阅者必须注意将信号正确地发布到其处理逻辑。
- Subscriber.onSubscribe() 对于给定的订阅者最多只能调用一次。
- 调用onSubscribe()、onNext()、onError()或onComplete()方法必须返回,除非任何提供的参数为空,在这种情况下它必须向调用者抛出NullPointerException。
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

