モジュール 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の順序で厳密に順序付けされるようにします。

    パブリッシャは、ドロップ(リソースの制限によりアイテムの発行に失敗)をリカバリ不能なエラーとして処理するかどうかに関するポリシーによって異なる場合があります。 また、パブリッシャは、サブスクライバがサブスクライブする前に作成されたアイテムまたは使用可能なアイテムを受信するかどうかによっても異なる場合があります。

    • メソッドの詳細

      • subscribe

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