Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のサブスクライバーインターフェイスのルールは何ですか?


サブスクライバー インターフェイスは、 onNext()を介してアイテムを受信するためにパブリッシャーにサブスクライブします メソッド、 onErrorによるエラーメッセージ () メソッド、または onComplete()を介してこれ以上アイテムが期待されないというシグナル 方法。これらのいずれかが発生する前に、パブリッシャーは onSubscription()を呼び出します メソッド。

public interface Subscriber<T> {
   public void onSubscribe(Subscription s);
   public void onNext(T t);
   public void onError(Throwable t);
   public void onComplete();
}

サブスクライバーインターフェイスのルール:

  • サブスクライバー Subscription.request(long n)を介して呼び出す必要があります onNext()を受け取るメソッド 信号。
  • Subscriber.onComplete() およびSubscriber.onError(Throwable t) メソッドは、サブスクリプションまたはパブリッシャーのメソッドを呼び出さないでください。
  • Subscriber.onComplete() およびSubscriber.onError(Throwable t) メソッドは、シグナルを受信した後にサブスクリプションがキャンセルされたことを考慮する必要があります。
  • サブスクライバーはSubscription.cancel()を呼び出す必要があります onSubscribe()の後の特定のサブスクリプションのメソッド すでにアクティブなサブスクリプションがあるかどうかを通知します。
  • サブスクライバーはSubscription.cancel()を呼び出す必要があります サブスクリプションが不要になった場合の方法。
  • サブスクライバーは、サブスクリプションのリクエストメソッドとキャンセルメソッドに対するすべての呼び出しがシリアルに実行されることを確認します。
  • サブスクライバーは、1つ以上の onNext()を受け取る必要があります Subscription.cancel()が呼び出された後のシグナル 保留中の要求された要素がまだある場合はメソッド。この方法は、基礎となるクリーニング操作をすぐに実行することを保証するものではありません。
  • サブスクライバーはonComplete()を受け取る必要があります 先行するSubscription.request(long n)の有無にかかわらずシグナル 電話してください。
  • サブスクライバーはonError()を受信する必要があります 先行するSubscription.request(long n)の有無にかかわらずシグナル 電話してください。
  • サブスクライバーは、それぞれのシグナルを処理する前に、シグナルメソッドのすべての呼び出しが発生することを確認します。これは、サブスクライバーがシグナルを処理ロジックに適切に公開するように注意する必要があることを意味します。
  • Subscriber.onSubscribe() 特定のサブスクライバーに対して最大で1回呼び出す必要があります。
  • onSubscribe()を呼び出す 、 onNext() onError() またはonComplete() 指定されたパラメータがnullの場合を除いて、メソッドは戻る必要があります。nullの場合は、 NullPointerExceptionをスローする必要があります。 発信者に。

  1. Java 9での@Deprecatedアノテーションの改善点は何ですか?

    @Deprecatedで注釈を付けることができる要素 この特定の要素が以下の理由で使用されなくなったことを意味します 使用するのは危険であり、エラーが発生する可能性があります。 将来のバージョンでは互換性がなくなる可能性があります。 将来のバージョンで削除される可能性があります。 より優れた、より効率的なソリューションがそれに取って代わりました。 Java 9には、次の2つの新しい要素が追加されています。以降 およびforRemoval 属性。 1)以降: この要素は、注釈付きAPI要素の非推奨バージョンを指定します。 2)forRemoval: 注釈付きのAPI要素を表す

  2. JavaでのFocusListenerインターフェースの重要性は何ですか?

    FocusListener フォーカスイベントは、コンポーネントがキーボードフォーカスを獲得または喪失するたびに生成されます。 。 フォーカスイベントを表すオブジェクトは、 FocusEventから作成されます クラス。 FocusEventに対応するリスナーインターフェイス クラスはFocusListener インターフェース。 FocusEventの各リスナー FocusListenerを実装できます インターフェイス。 FocusListener インターフェイスには2つのメソッドが含まれていますfocusGained(): リッスンされたコンポーネントがフォーカスを取