Rumah > Java > javaTutorial > teks badan

Bagaimanakah kita melaksanakan antara muka Pelanggan dalam Java 9?

WBOY
Lepaskan: 2023-09-04 13:33:07
ke hadapan
790 orang telah melayarinya

在Java 9中,我们如何实现Subscriber接口?

Java 9 menyokong penciptaan strim reaktif dengan memperkenalkan beberapa antara muka:🎜 🎜🎜#Penerbit, Pelanggan, Langganan dan laksanakan Penerbit ## #antaramuka🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜# baik hati. Setiap antara muka boleh memainkan peranan yang berbeza mengikut prinsip Aliran Reaktif. Kami boleh menggunakan antara muka Subscriber untuk melanggan data yang diterbitkan oleh publisher

. Kami perlu melaksanakan antara muka

Subscriber dan menyediakan pelaksanaan untuk kaedah abstrak. Kaedah Aliran.Antara muka pelanggan:

onComplete():

Kaedah ini dipanggil apabila objek Penerbitnya selesai peranan.

  • onError(): Kaedah ini dipanggil apabila Penerbit menghadapi masalah dan memberitahu Pelanggan.
  • onNext(): Kaedah ini dipanggil apabila Penerbit mempunyai maklumat baharu untuk memberitahu semua Pelanggan.
  • onSubscribe(): Kaedah ini dipanggil apabila Penerbit menambah Pelanggan.
  • Contoh
    import java.util.concurrent.Flow;
    import java.util.concurrent.SubmissionPublisher;
    import java.util.stream.IntStream;
    
    public class SubscriberImplTest {
       public static class Subscriber implements <strong>Flow.Subscriber<Integer></strong> {
          private <strong>Flow.Subscription</strong> subscription;
          private boolean isDone;
          
         <strong> @Override</strong>
          public void <strong>onSubscribe</strong>(Flow.Subscription subscription) {
             System.out.println("Subscribed");
             this.subscription = subscription;
             this.subscription.request(1);
          }
          <strong>@Override</strong>
          public void <strong>onNext</strong>(Integer item) {
             System.out.println("Processing " + item);
             this.subscription.request(1);
          }
          <strong>@Override</strong>
          public void <strong>onError</strong>(Throwable throwable) {
             throwable.printStackTrace();
          }
          <strong>@Override</strong>
          public void <strong>onComplete()</strong> {
             System.out.println("Processing done");
             isDone = true;
          }
       }
       public static void main(String args[]) throws InterruptedException {
          <strong>SubmissionPublisher<Integer></strong> publisher = new <strong>SubmissionPublisher<></strong><strong>()</strong>;
          <strong>Subscriber </strong>subscriber = new <strong>Subscriber()</strong>;
          publisher.subscribe(subscriber);
          <strong>IntStream</strong> intData = <strong>IntStream.rangeClosed</strong>(1, 10);
          intData.forEach(<strong>publisher::submit</strong>);
          publisher.<strong>close()</strong>;
          while(!subscriber.isDone) {
             Thread.sleep(10);
          }
          System.out.println("Done");
       }
    }
    Salin selepas log masuk
    Output
  • <strong>Subscribed
    Processing 1
    Processing 2
    Processing 3
    Processing 4
    Processing 5
    Processing 6
    Processing 7
    Processing 8
    Processing 9
    Processing 10
    Processing done
    Done</strong>
    Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah kita melaksanakan antara muka Pelanggan dalam Java 9?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan