Java Technologies Generics এর ব্যবহার (Compile-Time Type Safety, Reusability) গাইড ও নোট

301

Java Generics হল একটি পদ্ধতি যা জাভাতে compile-time type safety এবং reusability নিশ্চিত করার জন্য ব্যবহৃত হয়। এটি ক্লাস, ইন্টারফেস এবং মেথডকে একটি নির্দিষ্ট ডেটা টাইপের উপর কাজ করার জন্য ডিজাইন করতে সাহায্য করে, এবং সেই সাথে runtime-এ টাইপ কাস্টিং এড়ানো যায়।


Generics কেন ব্যবহার করা হয়?

  1. Compile-Time Type Safety:
    • Generics ব্যবহার করলে কোডে টাইপ সংক্রান্ত ত্রুটি কম্পাইল টাইমেই ধরা পড়ে। এটি runtime exception কমায় এবং প্রোগ্রামকে আরও স্থিতিশীল করে তোলে।
    • উদাহরণ:

      List<String> list = new ArrayList<>();
      list.add("Hello");
      list.add(123); // Compile-time error
      
  2. Reusability:
    • Generics একই কোডকে একাধিক ডেটা টাইপের জন্য পুনর্ব্যবহার করতে দেয়।
    • উদাহরণ:

      public class Box<T> {
          private T item;
          public void setItem(T item) {
              this.item = item;
          }
          public T getItem() {
              return item;
          }
      }
      

      উপরের ক্লাসটি যেকোনো ডেটা টাইপের সাথে কাজ করতে সক্ষম:

      Box<String> stringBox = new Box<>();
      stringBox.setItem("Hello");
      
      Box<Integer> intBox = new Box<>();
      intBox.setItem(123);
      

Generics এর প্রধান বৈশিষ্ট্য

  1. Type Parameter:
    Generics ক্লাস বা মেথড তৈরি করার সময় ডেটা টাইপের জন্য একটি placeholder ব্যবহার করা হয়, যেমন <T>, <E>, <K, V> ইত্যাদি।
    • <T>: Type
    • <E>: Element
    • <K>: Key
    • <V>: Value
  2. Type Erasure:
    Java Generics বাস্তবায়ন করতে type erasure ব্যবহার করে, অর্থাৎ runtime-এ Generics টাইপ মুছে ফেলা হয় এবং তাদের পরিবর্তে raw টাইপ ব্যবহার করা হয়।
  3. Bounded Type Parameters:
    Generics এ টাইপের উপর সীমাবদ্ধতা আরোপ করা যায়।

    public <T extends Number> void display(T value) {
        System.out.println(value);
    }
    
  4. Wildcards (?):
    একাধিক টাইপের সাথে কাজ করার জন্য wildcard ব্যবহার করা হয়।

    public void printList(List<?> list) {
        for (Object obj : list) {
            System.out.println(obj);
        }
    }
    

Generics এর ব্যবহার

  1. Generics Class:

    public class GenericClass<T> {
        private T data;
        public T getData() {
            return data;
        }
        public void setData(T data) {
            this.data = data;
        }
    }
    
  2. Generics Method:

    public static <T> void printArray(T[] array) {
        for (T element : array) {
            System.out.println(element);
        }
    }
    
  3. Generics Interface:

    public interface GenericInterface<T> {
        void display(T data);
    }
    
  4. Generics Collections:
    Collections Framework-এ Generics ব্যাপকভাবে ব্যবহৃত হয়।
    • উদাহরণ:

      List<String> names = new ArrayList<>();
      names.add("Alice");
      names.add("Bob");
      

সুবিধা

  1. Runtime Errors এড়ানো: টাইপ কাস্টিংয়ের প্রয়োজন নেই।
  2. Code Reusability: একই ক্লাস বা মেথড বিভিন্ন ডেটা টাইপের জন্য ব্যবহারযোগ্য।
  3. Readable and Clean Code: টাইপ সংক্রান্ত সমস্যা এড়িয়ে কোড সহজবোধ্য হয়।

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

import java.util.ArrayList;
import java.util.List;

public class GenericsExample {
    public static void main(String[] args) {
        // Generics List
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");

        // Accessing elements without type casting
        for (String fruit : fruits) {
            System.out.println(fruit);
        }

        // Generic Method
        Integer[] numbers = {1, 2, 3, 4};
        printArray(numbers);
    }

    public static <T> void printArray(T[] array) {
        for (T element : array) {
            System.out.println(element);
        }
    }
}

Generics-এর মাধ্যমে, প্রোগ্রামিং আরও নিরাপদ, পুনরায় ব্যবহারযোগ্য এবং সুন্দর হয়।

Content added By
Promotion

Are you sure to start over?

Loading...