Java Generics এর মাধ্যমে কনস্ট্রাক্টরকে জেনেরিক করা যায়। Generic Constructor এমন একটি কনস্ট্রাক্টর যা জেনেরিক টাইপ প্যারামিটার গ্রহণ করে এবং এটি কনস্ট্রাক্টরের সাথে ব্যবহার করা হয়। Generic Constructor মূলত একটি নির্দিষ্ট ক্লাসের কনস্ট্রাক্টর হলেও এর নিজস্ব জেনেরিক টাইপ প্যারামিটার থাকতে পারে।
Generic Constructor এর গঠন
class ClassName {
// Generic Constructor
<T> ClassName(T parameter) {
System.out.println("Parameter: " + parameter);
}
}
Generic Constructor এর উদাহরণ
1. সাধারণ উদাহরণ
class GenericConstructorDemo {
// Generic Constructor
<T> GenericConstructorDemo(T parameter) {
System.out.println("Constructor Parameter: " + parameter);
}
public static void main(String[] args) {
GenericConstructorDemo obj1 = new GenericConstructorDemo(123); // Integer
GenericConstructorDemo obj2 = new GenericConstructorDemo("Java Generics"); // String
GenericConstructorDemo obj3 = new GenericConstructorDemo(45.67); // Double
}
}
আউটপুট:
Constructor Parameter: 123
Constructor Parameter: Java Generics
Constructor Parameter: 45.67
2. জেনেরিক ক্লাস এবং কনস্ট্রাক্টরের সংমিশ্রণ
class GenericClass<T> {
private T data;
// Generic Constructor
<U> GenericClass(U parameter) {
System.out.println("Constructor Parameter: " + parameter);
}
public void setData(T data) {
this.data = data;
}
public T getData() {
return data;
}
}
public class Main {
public static void main(String[] args) {
GenericClass<String> obj = new GenericClass<>(100); // Constructor with Integer
obj.setData("Hello Generics");
System.out.println("Data: " + obj.getData());
}
}
আউটপুট:
Constructor Parameter: 100
Data: Hello Generics
3. কনস্ট্রাক্টরে লজিক ব্যবহার
class Calculator {
private double result;
// Generic Constructor
<T extends Number> Calculator(T number1, T number2) {
result = number1.doubleValue() + number2.doubleValue();
System.out.println("Sum: " + result);
}
public double getResult() {
return result;
}
}
public class Main {
public static void main(String[] args) {
Calculator calc1 = new Calculator(10, 20); // Integer
Calculator calc2 = new Calculator(15.5, 4.5); // Double
}
}
আউটপুট:
Sum: 30.0
Sum: 20.0
Generic Constructor এর সুবিধা
- পুনরায় ব্যবহারযোগ্য কোড:
Generic Constructor একই লজিক বিভিন্ন ডেটা টাইপের জন্য কাজ করতে পারে। - টাইপ সেফটি:
কনস্ট্রাক্টর প্যারামিটারের টাইপ নির্ধারণ করার ফলে কম্পাইল-টাইমে টাইপ চেকিং নিশ্চিত হয়। - প্রোগ্রামের নমনীয়তা:
Generic Constructor বিভিন্ন টাইপের ইনপুট প্যারামিটার নিয়ে কাজ করতে পারে, ফলে এটি আরও বহুমুখী।
Generic Constructor এর সীমাবদ্ধতা
- স্ট্যাটিক কনটেক্সটে কাজ করে না:
Generic Constructor বা এর জেনেরিক প্যারামিটারকে স্ট্যাটিক ভাবে ব্যবহার করা যায় না। - প্রাইমিটিভ টাইপ সরাসরি সমর্থন করে না:
Generic Constructor প্রাইমিটিভ টাইপ (int, double) সরাসরি ব্যবহার করতে পারে না, Wrapper ক্লাস (Integer, Double) ব্যবহার করতে হয়।
Generic Constructor প্রোগ্রামের নমনীয়তা বৃদ্ধি করে এবং টাইপ সেফ কোড নিশ্চিত করে। এটি জাভার জেনেরিক্সের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ডেটা টাইপের নির্দিষ্টতা বজায় রেখে একই লজিক বিভিন্ন পরিস্থিতিতে প্রয়োগ করতে দেয়।
Content added By
Read more