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 mukaSubscriber dan menyediakan pelaksanaan untuk kaedah abstrak. Kaedah Aliran.Antara muka pelanggan:
onComplete():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"); } }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>
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!