モジュール java.base
パッケージ java.util.concurrent

インタフェースFlow.Publisher<T>

  • 型パラメータ:
    T - 公開アイテム型
    既知のすべてのサブインタフェース:
    Flow.Processor<T,​R>, HttpRequest.BodyPublisher
    既知のすべての実装クラス:
    SubmissionPublisher
    含まれているクラス:
    Flow
    関数型インタフェース:
    これは関数型インタフェースなので、ラムダ式またはメソッド参照の代入先として使用できます。

    @FunctionalInterface
    public static interface Flow.Publisher<T>
    サブスクライブ者が受け取ったアイテム(および関連する制御メッセージ)のプロデューサ。 現在の各Flow.Subscriberは、ドロップまたはエラーが発生しない限り、同じ順序で同じアイテム(経由メソッドonNext)を受け取ります。 パブリッシャがアイテムをサブスクライバに発行できないようなエラーが発生した場合、そのサブスクライバはonErrorを受信し、それ以上メッセージを受信しません。 それ以外のメッセージがそれ以上発行されないことがわかっている場合、サブスクライバは onCompleteを受信します。 パブリッシャは、各サブスクリプションのSubscriberメソッド呼び出しを厳密にhappens-beforeの順序で順序付けするようにします。

    パブリッシャは、drop (リソースの制限のためにアイテムを発行できない)が回復不能なエラーとして扱われるかどうかについてポリシーが異なる場合があります。 また、サブスクライブ者は、サブスクライブする前に制作された商品や利用可能な商品を受け取るかどうかについても異なる場合があります。

    • メソッドの詳細

      • subscribe

        void subscribe​(Flow.Subscriber<? super T> subscriber)
        可能であれば、指定されたサブスクライバを追加します。 すでに加入している場合、またはポリシー違反またはエラーのために加入しようとする試みが失敗した場合、サブスクライバonErrorメソッドはIllegalStateExceptionを使用して呼び出されます。 そうでなければ、サブスクライバのonSubscribeメソッドが新しいFlow.Subscriptionで呼び出されます。 サブスクライバは、このサブスクリプションのrequestメソッドを呼び出してアイテムを受信できるようにし、cancelメソッドを呼び出すことによってサブスクリプションを解除することができます。
        パラメータ:
        subscriber - サブスクライバ
        例外:
        NullPointerException - subscriberがnullの場合