Интерфейс Flow.Publisher<T>
- Type Parameters:
-
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 |
Добавляет указанного подписчика, если это возможно. |
Подробное описание методов
subscribe
void subscribe(Flow.Subscriber<? super T> subscriber)
onError подписчика вызывается с IllegalStateException. В противном случае, метод onSubscribe подписчика вызывается с новым Flow.Subscription. Подписчики могут включить получение элементов, вызвав метод request этой подписки, и могут отказаться от подписки, вызвав метод cancel.- Параметры:
-
subscriber- подписчик - Исключения:
-
NullPointerException- если подписчик равен null
© 1993, 2021, 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/17/docs/api/java.base/java/util/concurrent/Flow.Publisher.html