Generic Methods হলো জাভা মেথড যা টাইপ প্যারামিটার ব্যবহার করে, অর্থাৎ মেথডটি বিভিন্ন ডেটা টাইপের সাথে কাজ করতে পারে। এটি মেথডের উপর ভিত্তি করে নির্দিষ্ট ডেটা টাইপ নির্ধারণের জন্য ব্যবহৃত হয়।
Generic Methods জাভার Generics ফিচারের অংশ এবং এটি জাভা 5-এ প্রবর্তিত হয়েছিল।
Generic Methods কী?
Generic Methods এমন একটি মেথড যা একটি বা একাধিক টাইপ প্যারামিটার গ্রহণ করে। এই প্যারামিটারগুলো <T> এর মতো চিহ্নিত করা হয় এবং সাধারণত মেথড সিগনেচারের আগে উল্লেখ করা হয়।
Generic Method এর সাধারণ গঠন:
public <T> ReturnType methodName(T parameter) {
// Method body
}
এখানে:
<T>টাইপ প্যারামিটার নির্দেশ করে।Tযেকোনো ডেটা টাইপের প্রতিনিধিত্ব করে (যেমন,Integer,String, ইত্যাদি)।- টাইপ প্যারামিটার একাধিকও হতে পারে (যেমন,
<T, U, V>)।
Generic Method এর উদাহরণ
১. সাধারণ Generic Method
public class GenericMethodExample {
// A Generic Method
public static <T> void printArray(T[] array) {
for (T element : array) {
System.out.println(element);
}
}
public static void main(String[] args) {
Integer[] intArray = {1, 2, 3};
String[] stringArray = {"A", "B", "C"};
System.out.println("Integer Array:");
printArray(intArray); // Prints Integer array
System.out.println("String Array:");
printArray(stringArray); // Prints String array
}
}
ফলাফল:
Integer Array:
1
2
3
String Array:
A
B
C
২. Generic Method ব্যবহার করে দুটি ভ্যালু প্রিন্ট করা
public class GenericMethodExample {
public static <T, U> void displayValues(T value1, U value2) {
System.out.println("Value 1: " + value1);
System.out.println("Value 2: " + value2);
}
public static void main(String[] args) {
displayValues("Hello", 123); // String and Integer
displayValues(10.5, true); // Double and Boolean
}
}
ফলাফল:
Value 1: Hello
Value 2: 123
Value 1: 10.5
Value 2: true
Generic Methods কিভাবে কাজ করে?
- টাইপ প্যারামিটার ডিফাইন করা:
টাইপ প্যারামিটার<T>মেথড সিগনেচারের আগে ডিফাইন করা হয়। এটি মেথডকে বিভিন্ন টাইপের ডেটা গ্রহণ করার অনুমতি দেয়। টাইপ ইনফারেন্স:
মেথড কল করার সময় জাভা স্বয়ংক্রিয়ভাবে টাইপ ইনফার করতে পারে। উদাহরণস্বরূপ:printArray(new String[]{"A", "B", "C"});টাইপ সীমাবদ্ধ করা (Bounded Type Parameters):
Generic Methods নির্দিষ্ট টাইপ বা টাইপের একটি সীমাবদ্ধতা সেট করতে পারে।public static <T extends Number> void displayNumber(T number) { System.out.println("Number: " + number); }এখানে,
Tশুধুমাত্রNumberঅথবা তার সাবক্লাস (যেমনInteger,Double) হতে পারে।- Generic Method Overloading:
Generic Methodsকে অন্য সাধারণ মেথডের মতো ওভারলোড করা যায়, তবে মেথডের টাইপ প্যারামিটারের নাম ভিন্ন হতে পারে।
Generic Method এর গুরুত্বপূর্ণ দিক
- Reusable Code:
Generic Methods একই কোড দিয়ে বিভিন্ন ডেটা টাইপে কাজ করতে পারে। - Type Safety:
টাইপ প্যারামিটারের কারণে কম্পাইল টাইমে টাইপ ত্রুটি ধরা পড়ে, যা রানটাইম ত্রুটি এড়াতে সাহায্য করে। - ডায়নামিক টাইপিং:
টাইপ প্যারামিটারের মাধ্যমে বিভিন্ন টাইপের ডেটা সহজেই পরিচালনা করা যায়। - Flexible and Scalable:
একাধিক টাইপ প্যারামিটার ব্যবহার করে জটিল অপারেশনও সহজ করা যায়।
উদাহরণ: টাইপ সীমাবদ্ধতা সহ Generic Method
public class BoundedGenericMethod {
// Only allows Number and its subclasses
public static <T extends Number> double addNumbers(T num1, T num2) {
return num1.doubleValue() + num2.doubleValue();
}
public static void main(String[] args) {
System.out.println(addNumbers(5, 10)); // Integer addition
System.out.println(addNumbers(5.5, 2.3)); // Double addition
// addNumbers("Hello", "World"); // Compile-time error
}
}
ফলাফল:
15.0
7.8
Generic Methods হলো জাভার একটি শক্তিশালী ফিচার যা টাইপ প্যারামিটার ব্যবহার করে মেথডকে আরো বহুমুখী এবং পুনঃব্যবহারযোগ্য করে তোলে। এটি টাইপ সেফটি নিশ্চিত করে এবং কম্পাইল টাইমে টাইপ ত্রুটি চিহ্নিত করতে সাহায্য করে। টাইপ সীমাবদ্ধতা এবং টাইপ ইনফারেন্স এর মাধ্যমে Generic Methods জাভার উন্নত প্রোগ্রামিং অভিজ্ঞতা প্রদান করে।
Read more