কম্পিউটার টিউটোরিয়াল

জাভা ৯-এ Flow.Publisher ইন্টারফেস ইমপ্লিমেন্ট করার পদ্ধতি

একটি Publisher ইন্টারফেস সিকোয়েন্সড এলিমেন্টের অনবাউন্ড সংখ্যার প্রদানকারী, সাবস্ক্রাইবারের পাওয়া ডিমান্ড অনুযায়ী সেগুলো পাবলিশ করে। Publisher.subscribe(Subscriber) কলের রেসপন্সে, Subscriber-এ মেথড ইনভোকেশনের সম্ভাব্য সিকোয়েন্স। এর মানে হলো onSubscribe() মেথড, ফলোড বাই অনবাউন্ড সংখ্যক onNext() মেথড (যেমন সাবস্ক্রাইবার অনুরোধ করেছে) ফলোড বাই একটি onError() মেথড, যদি ফেইল হয় অথবা একটি onComplete() মেথড যখন আর কোনো এলিমেন্ট উপলব্ধ নয় যতক্ষণ না Subscription ক্যানসেল হয়।

সিনট্যাক্স

public interface Publisher<T> {
    public void subscribe(Subscriber<? super T> s);
}

উদাহরণ

import java.util.concurrent.*;
import java.util.*;
import java.util.stream.*;

class SimplePublisher implements Flow.Publisher<Integer> {
    private final Iterator<Integer> iterator;
    SimplePublisher(int count) {
        this.iterator = IntStream.rangeClosed(1, count).iterator();
    }
    
    @Override
    public void subscribe(Flow.Subscriber<? super Integer> subscriber) {
        iterator.forEachRemaining(subscriber::onNext);
        subscriber.onComplete();
    }
}

public class SimplePublisherImplTest {
    public static void main(String args[]) {
        new SimplePublisher(10).subscribe(new Flow.Subscriber<>() {
            @Override
            public void onSubscribe(Flow.Subscription subscription) {
            }
            @Override
            public void onNext(Integer item) {
                System.out.println("item = [" + item + "]");
            }
            @Override
            public void onError(Throwable throwable) { }
            @Override
            public void onComplete() {
                System.out.println("complete");
            }
        });
    }
}

আউটপুট

item = [1]
item = [2]
item = [3]
item = [4]
item = [5]
item = [6]
item = [7]
item = [8]
item = [9]
item = [10]
complete
  1. জাভাতে অটো-কমপ্লিট JComboBox বাস্তবায়ন করা

  2. জাভাতে রাউন্ডেড JTextField বাস্তবায়ন

  3. জাভাতে এডিটেবল JLabel কীভাবে বাস্তবায়ন করবেন?

  4. জাভাতে JToggleButton কীভাবে বাস্তবায়ন করবেন?