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