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();
}

กฎสำหรับอินเทอร์เฟซสมาชิก:

  • A สมาชิก ต้องโทรผ่าน 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() เมธอดต้องส่งคืน ยกเว้นเมื่อพารามิเตอร์ใดๆ ที่ระบุเป็นค่าว่าง ซึ่งในกรณีนี้จะต้องส่ง NullPointerException ถึงผู้โทร