জাভায় Enum একটি বিশেষ ডেটা টাইপ যা পূর্ব-সংজ্ঞায়িত ধ্রুবক মানের একটি সেট সংরক্ষণ করতে ব্যবহৃত হয়। জেনেরিক্স এবং Enum একত্রে ব্যবহার করে টাইপ সেফ প্রোগ্রাম তৈরি করা যায়। এটি বিশেষ করে সেই ক্ষেত্রগুলোতে কার্যকর যেখানে Enum ভ্যালু সহ জেনেরিক ডেটা প্রক্রিয়াকরণ প্রয়োজন।
Generics এবং Enum একত্রে ব্যবহার করার সুবিধা
- টাইপ সেফ প্রোগ্রামিং: শুধুমাত্র নির্দিষ্ট
Enumটাইপের সাথে কাজ করতে দেয়। - কোড পুনরায় ব্যবহারযোগ্যতা: জেনেরিক্সের কারণে একই ক্লাস বা মেথড বিভিন্ন
Enumটাইপে কাজ করতে পারে। - ডেটা মডেলিং:
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 এর ব্যবহারিক সুবিধা
- 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 একসঙ্গে ব্যবহারে টাইপ সেফ ডেটা মডেল তৈরি এবং কার্যকর ডেটা প্রক্রিয়াকরণ সহজ হয়। জেনেরিক ক্লাস, মেথড, এবং জাভার বিল্ট-ইন EnumMap ও EnumSet ব্যবহার করে ডেভেলপাররা আরও কার্যকর এবং পুনরায় ব্যবহারযোগ্য কোড লিখতে পারেন।
Content added By
Read more