Heim > Java > javaLernprogramm > Wie implementieren wir die SubmissionPublisher-Klasse in Java 9?

Wie implementieren wir die SubmissionPublisher-Klasse in Java 9?

WBOY
Freigeben: 2023-09-02 19:05:02
nach vorne
1015 Leute haben es durchsucht

在Java 9中,我们如何实现SubmissionPublisher类?

Ab Java 9 können wir Reaktive Streams erstellen, indem wir vier Kernschnittstellen einführen: Publisher, Subscriber, Subscription, Processor und eine konkrete Klasse: Implementation Die. SubmissionPublisher-Schnittstelle von Publisher. Jede Schnittstelle spielt eine andere Rolle, entsprechend den Prinzipien der ReaktionsfähigkeitFluss. Mit der Methode submit() der Klasse SubmissionPublisher können wir die bereitgestellten Elemente für jeden Abonnenten veröffentlichen.

Syntax

<strong>public class SubmissionPublisher<T> extends Object implements Flow.Publisher<T>, AutoCloseable</strong>
Nach dem Login kopieren

Im folgenden Beispiel können wir die SubmissionPublisher Class

Example

import java.util.concurrent.Flow.Subscriber;
import java.util.concurrent.Flow.Subscription;
import java.util.concurrent.SubmissionPublisher;

class MySubscriber<T> implements <strong>Subscriber<T></strong> {
   private <strong>Subscription </strong>subscription;
   private String name;
   public MySubscriber(String name) {
      this.name = name;
   }
   <strong>@Override</strong>
   public void <strong>onComplete()</strong> {
      System.out.println(name + ": onComplete");
   }
   <strong>@Override</strong>
   public void <strong>onError</strong>(Throwable t) {
      System.out.println(name + ": onError");
      t.printStackTrace();
   }
  <strong> @Override</strong>
   public void <strong>onNext</strong>(T msg) {
      System.out.println(name + ": " + msg.toString() + " received in onNext");
      subscription.<strong>request</strong>(1);
   }
   <strong>@Override</strong>
   public void <strong>onSubscribe</strong>(Subscription subscription) {
      System.out.println(name + ": onSubscribe");
      this.subscription = subscription;
      subscription.<strong>request</strong>(1);
   }
}

<strong>// Main class</strong>
public class FlowTest {
   public static void main(String args[]) {
      <strong>SubmissionPublisher<String></strong> publisher = new <strong>SubmissionPublisher</strong><>();
      MySubscriber<String> subscriber = new MySubscriber<>("Mine");
      MySubscriber<String> subscriberYours = new MySubscriber<>("Yours");
      MySubscriber<String> subscriberHis = new MySubscriber<>("His");
      MySubscriber<String> subscriberHers = new MySubscriber<>("Her");

      publisher.<strong>subscribe</strong>(subscriber);
      publisher.<strong>subscribe</strong>(subscriberYours);
      publisher.<strong>subscribe</strong>(subscriberHis);
      publisher.<strong>subscribe</strong>(subscriberHers);

      publisher.<strong>submit</strong>("One");
      publisher.<strong>submit</strong>("Two");
      publisher.<strong>submit</strong>("Three");
      publisher.<strong>submit</strong>("Four");
      publisher.<strong>submit</strong>("Five");

      try {
         Thread.sleep(1000);
      } catch(InterruptedException e) {
         e.printStackTrace();
      }
      publisher.close();
   }
}
Nach dem Login kopieren

Output

<strong>Yours: onSubscribe
His: onSubscribe
Mine: onSubscribe
His: One received in onNext
Yours: One received in onNext
Mine: One received in onNext
Yours: Two received in onNext
His: Two received in onNext
Yours: Three received in onNext
Mine: Two received in onNext
Yours: Four received in onNext
His: Three received in onNext
Yours: Five received in onNext
Mine: Three received in onNext
Her: onSubscribe
His: Four received in onNext
Her: One received in onNext
Mine: Four received in onNext
Her: Two received in onNext
His: Five received in onNext
Her: Three received in onNext
Mine: Five received in onNext
Her: Four received in onNext
Her: Five received in onNext
Yours: onComplete
His: onComplete
Mine: onComplete
Her: onComplete</strong>
Nach dem Login kopieren
implementieren

Das obige ist der detaillierte Inhalt vonWie implementieren wir die SubmissionPublisher-Klasse in Java 9?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage