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()을 호출해야 합니다. 구독이 더 이상 필요하지 않은 경우 방법입니다.
  • 구독자는 구독 요청 및 취소 메서드에 대한 모든 호출이 순차적으로 수행되는지 확인합니다.
  • 구독자는 하나 이상의 onNext()를 수신해야 합니다. Subscription.cancel() 호출 후 신호 요청된 요소가 보류 중인 경우 메서드입니다. 이 방법은 기본 정리 작업을 즉시 수행한다고 보장하지 않습니다.
  • 구독자는 onComplete()를 수신해야 합니다. 선행 Subscription.request(long n)가 있거나 없는 신호 전화하세요.
  • 구독자는 onError()를 수신해야 합니다. 선행 Subscription.request(long n)가 있거나 없는 신호 전화하세요.
  • 가입자는 신호 메서드에 대한 모든 호출이 해당 신호를 처리하기 전에 발생하는지 확인합니다. 이는 구독자가 신호를 처리 논리에 적절하게 게시해야 함을 의미합니다.
  • Subscriber.onSubscribe() 특정 구독자에 대해 최대 한 번만 호출해야 합니다.
  • onSubscribe() 호출 , onNext() , onError() 또는 onComplete() 메소드는 제공된 매개변수가 null인 경우를 제외하고 반환해야 하며 이 경우 NullPointerException을 발생시켜야 합니다. 발신자에게.