Enum এর সাথে Generics এর ব্যবহার

Generics এবং Enum Integration - জাভা জেনেরিক্স (Java Generics) - Java Technologies

366

জাভায় Enum একটি বিশেষ ডেটা টাইপ যা পূর্ব-সংজ্ঞায়িত ধ্রুবক মানের একটি সেট সংরক্ষণ করতে ব্যবহৃত হয়। জেনেরিক্স এবং Enum একত্রে ব্যবহার করে টাইপ সেফ প্রোগ্রাম তৈরি করা যায়। এটি বিশেষ করে সেই ক্ষেত্রগুলোতে কার্যকর যেখানে Enum ভ্যালু সহ জেনেরিক ডেটা প্রক্রিয়াকরণ প্রয়োজন।


Generics এবং Enum একত্রে ব্যবহার করার সুবিধা

  1. টাইপ সেফ প্রোগ্রামিং: শুধুমাত্র নির্দিষ্ট Enum টাইপের সাথে কাজ করতে দেয়।
  2. কোড পুনরায় ব্যবহারযোগ্যতা: জেনেরিক্সের কারণে একই ক্লাস বা মেথড বিভিন্ন Enum টাইপে কাজ করতে পারে।
  3. ডেটা মডেলিং: Enum এবং জেনেরিক্স একত্রে ব্যবহার করে আরও কার্যকর ডেটা মডেল তৈরি করা যায়।

Enum এবং Generics ব্যবহার করে উদাহরণ

1. Generics সহ Enum Storage

public class EnumWithGenerics<E extends Enum<E>> {
    private E value;

    public EnumWithGenerics(E value) {
        this.value = value;
    }

    public E getValue() {
        return value;
    }

    public void setValue(E value) {
        this.value = value;
    }

    public static void main(String[] args) {
        // Example with a Day enum
        EnumWithGenerics<Day> dayEnum = new EnumWithGenerics<>(Day.MONDAY);
        System.out.println("Day: " + dayEnum.getValue());

        dayEnum.setValue(Day.FRIDAY);
        System.out.println("Updated Day: " + dayEnum.getValue());
    }
}

enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

আউটপুট:

Day: MONDAY
Updated Day: FRIDAY

2. Generics এবং Enum এর মাধ্যমে মেথড তৈরি

public class EnumUtils {
    public static <E extends Enum<E>> void printEnumValues(Class<E> enumType) {
        for (E constant : enumType.getEnumConstants()) {
            System.out.println(constant);
        }
    }

    public static void main(String[] args) {
        // Print all values of Day enum
        printEnumValues(Day.class);

        // Print all values of Status enum
        printEnumValues(Status.class);
    }
}

enum Status {
    ACTIVE, INACTIVE, PENDING, COMPLETED
}

enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

আউটপুট:

MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
ACTIVE
INACTIVE
PENDING
COMPLETED

3. Enum এবং Generics ব্যবহার করে Map পরিচালনা

import java.util.EnumMap;

public class EnumMapWithGenerics<K extends Enum<K>, V> {
    private EnumMap<K, V> map;

    public EnumMapWithGenerics(Class<K> keyType) {
        map = new EnumMap<>(keyType);
    }

    public void put(K key, V value) {
        map.put(key, value);
    }

    public V get(K key) {
        return map.get(key);
    }

    public static void main(String[] args) {
        EnumMapWithGenerics<Day, String> schedule = new EnumMapWithGenerics<>(Day.class);

        schedule.put(Day.MONDAY, "Meeting");
        schedule.put(Day.FRIDAY, "Code Review");

        System.out.println("Monday's Task: " + schedule.get(Day.MONDAY));
        System.out.println("Friday's Task: " + schedule.get(Day.FRIDAY));
    }
}

enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

আউটপুট:

Monday's Task: Meeting
Friday's Task: Code Review

Generics এবং Enum এর ব্যবহারিক সুবিধা

  1. EnumMap এবং EnumSet:
    • জাভার EnumMap এবং EnumSet ক্লাস জেনেরিক্স ব্যবহার করে টাইপ সেফ ডেটা সংরক্ষণ করতে সহায়তা করে।
    • EnumMap কার্যকরীভাবে Enum ভ্যালুগুলোর জন্য ডেটা মানচিত্রিত করে।

উদাহরণ: EnumMap ব্যবহার

import java.util.EnumMap;

public class EnumMapExample {
    public static void main(String[] args) {
        EnumMap<Day, String> taskMap = new EnumMap<>(Day.class);

        taskMap.put(Day.MONDAY, "Start Project");
        taskMap.put(Day.WEDNESDAY, "Midweek Review");
        taskMap.put(Day.FRIDAY, "Complete Project");

        taskMap.forEach((day, task) -> {
            System.out.println(day + ": " + task);
        });
    }
}

enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

আউটপুট:

MONDAY: Start Project
WEDNESDAY: Midweek Review
FRIDAY: Complete Project

Generics এবং Enum একসঙ্গে ব্যবহারে টাইপ সেফ ডেটা মডেল তৈরি এবং কার্যকর ডেটা প্রক্রিয়াকরণ সহজ হয়। জেনেরিক ক্লাস, মেথড, এবং জাভার বিল্ট-ইন EnumMapEnumSet ব্যবহার করে ডেভেলপাররা আরও কার্যকর এবং পুনরায় ব্যবহারযোগ্য কোড লিখতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...