কম্পিউটার

কিভাবে আমরা জাভা 9 এ SubmissionPublisher ক্লাস বাস্তবায়ন করতে পারি?


Java 9 থেকে, আমরা R তৈরি করতে পারি সক্রিয় স্ট্রীম চারটি মূল ইন্টারফেস প্রবর্তন করে:প্রকাশক , সাবস্ক্রাইবার , সদস্যতা , প্রসেসর , এবং একটি কংক্রিট ক্লাস:জমা প্রকাশক যা প্রকাশক কে বাস্তবায়ন করে ইন্টারফেস. প্রতিটি ইন্টারফেস আলাদা ভূমিকা পালন করে, প্রতিক্রিয়াশীল -এর নীতির সাথে মিল রেখে স্ট্রিমগুলি৷ . আমরা submit() ব্যবহার করতে পারি জমা প্রকাশকের পদ্ধতি প্রতিটি গ্রাহকের কাছে প্রদত্ত আইটেম প্রকাশ করার জন্য ক্লাস।

সিনট্যাক্স

public class SubmissionPublisher<T> extends Object implements Flow.Publisher<T>, AutoCloseable

নীচের উদাহরণে, আমরা জমা প্রকাশক বাস্তবায়ন করতে পারি ক্লাস

উদাহরণ

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

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

// Main class
public class FlowTest {
   public static void main(String args[]) {
      SubmissionPublisher<String> publisher = new SubmissionPublisher<>();
      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.subscribe(subscriber);
      publisher.subscribe(subscriberYours);
      publisher.subscribe(subscriberHis);
      publisher.subscribe(subscriberHers);

      publisher.submit("One");
      publisher.submit("Two");
      publisher.submit("Three");
      publisher.submit("Four");
      publisher.submit("Five");

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

আউটপুট

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

  1. কিভাবে আমরা জাভাতে একটি JPanel এর paintComponent() পদ্ধতি প্রয়োগ করতে পারি?

  2. কিভাবে আমরা জাভাতে একটি JFrame এর সর্বাধিক বোতামটি নিষ্ক্রিয় করতে পারি?

  3. জাভাতে বর্ডারফ্যাক্টরি ব্যবহার করে আমরা কীভাবে বিভিন্ন সীমানা প্রয়োগ করতে পারি?

  4. কিভাবে আমরা জাভাতে একটি JToggleButton বাস্তবায়ন করতে পারি?