Интерфейс Flow.Publisher<T>
- Параметры типа:
-
T- тип публикуемого элемента
- Все известные подинтерфейсы:
-
Flow.Processor<T,R>,HttpRequest.BodyPublisher
- Все известные реализующие классы:
SubmissionPublisher
- Вложенный класс:
- Flow
- Функциональный интерфейс:
- Это функциональный интерфейс и поэтому может быть использован в качестве цели присваивания лямбда-выражения или ссылки на метод.
@FunctionalInterface public static interface Flow.Publisher<T>
Производитель элементов (и связанных управляющих сообщений), получаемых подписчиками. Каждый текущий Flow.Subscriber получает те же элементы (через метод onNext) в том же порядке, если не возникают ошибки или пропуски. Если у издателя возникает ошибка, которая не позволяет издавать элементы подписчику, этот подписчик получает onError, а затем не получает никаких дальнейших сообщений. В противном случае, когда известно, что больше сообщений не будет отправлено, подписчик получает
onComplete. Издатели гарантируют, что вызовы методов подписчиков для каждой подписки строго упорядочены в порядке happens-before.
Политики издателей могут отличаться в отношении того, считаются ли пропуски (невозможность выдачи элемента из-за ограничений ресурсов) необратимыми ошибками. Издатели также могут отличаться в отношении того, получают ли подписчики элементы, которые были произведены или доступны до их подписки.
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
subscribe(Flow.Subscriber<? super T> subscriber) |
Добавляет заданного подписчика, если это возможно. |
Методы
subscribe
void subscribe(Flow.Subscriber<? super T> subscriber)
Добавляет заданного подписчика, если это возможно. Если подписка уже существует или попытка подписки завершается неудачей из-за нарушений политики или ошибок, метод onError подписчика вызывается с IllegalStateException. В противном случае, метод onSubscribe подписчика вызывается с новой Flow.Subscription. Подписчики могут начать получать элементы, вызвав метод request этой подписки, и могут отписаться, вызвав метод cancel.
- Параметры:
-
subscriber- подписчик - Исключения:
-
NullPointerException- если подписчик равен null
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/Flow.Publisher.html