Repeatable Annotations এর ধারণা

Annotations in Java 8 (জাভা ৮ এ এনোটেশনস) - জাভা (Java 8) - Computer Programming

400

Repeatable annotations Java 8-এ একটি নতুন বৈশিষ্ট্য হিসেবে চালু করা হয়েছিল, যা একটি নির্দিষ্ট অ্যানোটেশনকে একাধিক বার একটি উপাদানের (যেমন ক্লাস, মেথড, ফিল্ড, প্যারামিটার) উপর প্রয়োগ করার সুবিধা প্রদান করে। Java 8 এর আগ পর্যন্ত, আপনি একটি অ্যানোটেশন শুধুমাত্র একবারই একটি উপাদানে প্রয়োগ করতে পারতেন। তবে, repeatable annotations এর মাধ্যমে আপনি একই অ্যানোটেশন একাধিক বার প্রয়োগ করতে পারেন।

এই বৈশিষ্ট্যটি Java 8-এ @Repeatable অ্যানোটেশনটি অন্তর্ভুক্ত করার মাধ্যমে পরিচিত হয়।


Repeatable Annotations এর ভূমিকা

এটি মূলত জাভার অ্যানোটেশন ব্যবস্থাকে আরও ফ্লেক্সিবল এবং সুবিধাজনক করে তুলেছে। অনেক সময় একই ধরনের তথ্য একাধিক বার প্রয়োগ করা প্রয়োজন হয়। যেমন, কোনো মেথড বা ক্লাসের উপর একাধিক অ্যানোটেশন প্রয়োগ করার সময়, আপনি যদি একটি অ্যানোটেশন একাধিক বার প্রয়োগ করতে চান তবে repeatable annotations এর মাধ্যমে এটি সম্ভব হয়।

@Repeatable অ্যানোটেশন ব্যবহার:

Java 8-এ @Repeatable অ্যানোটেশন একটি অ্যানোটেশন ট্যাগকে “repeatable” হিসেবে চিহ্নিত করতে ব্যবহৃত হয়, অর্থাৎ এই অ্যানোটেশন একাধিক বার প্রয়োগ করা যেতে পারে।

এটি দুইটি অংশে কাজ করে:

  1. Repeatable container annotation: এটি একটি বিশেষ ধরনের অ্যানোটেশন যা repeatable annotations সংরক্ষণ করে।
  2. The repeatable annotation: এটি সেই অ্যানোটেশন যেটি একাধিক বার প্রয়োগ করা যাবে।

Repeatable Annotation এর উদাহরণ

ধরা যাক, আমরা একটি অ্যানোটেশন তৈরি করছি, যেমন @Tag, এবং এই অ্যানোটেশনটি একাধিক বার একটি ক্লাস বা মেথডের উপরে প্রয়োগ করতে চাই।

১. Step 1: Repeatable Container Annotation তৈরি করা

প্রথমে একটি container annotation তৈরি করতে হবে যা সেই অ্যানোটেশনগুলির একটি অ্যারে বা তালিকা ধারণ করবে যা পুনরায় প্রয়োগ করা যাবে।

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

// Repeatable container annotation
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)  // Can be applied to classes or methods
public @interface Tags {
    Tag[] value();  // Array of Tag annotations
}

এখানে, Tags একটি container annotation, যা একাধিক Tag অ্যানোটেশন ধারণ করবে।

২. Step 2: Repeatable Annotation তৈরি করা

এবার, আপনি একটি সাধারণ অ্যানোটেশন তৈরি করবেন, যা একাধিক বার প্রয়োগ করা যাবে।

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;

// Repeatable annotation
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)  // Can be applied to classes
@Repeatable(Tags.class)   // Declare this annotation as repeatable
public @interface Tag {
    String value();  // A simple value field
}

এখানে, @Repeatable(Tags.class) দ্বারা Tag অ্যানোটেশনটি repeatable হিসেবে চিহ্নিত হয়েছে, এবং এটি Tags কন্টেইনার অ্যানোটেশনের অধীনে একাধিকবার প্রয়োগ করা যাবে।

৩. Step 3: অ্যানোটেশন ব্যবহার করা

এখন আপনি Tag অ্যানোটেশনটি একাধিক বার প্রয়োগ করতে পারবেন।

@Tag("Java")
@Tag("Programming")
public class ExampleClass {
    // Class implementation
}

এখানে, ExampleClass এর উপর একাধিক Tag অ্যানোটেশন প্রয়োগ করা হয়েছে, এবং এটি repeatable annotations এর মাধ্যমে সম্ভব হয়েছে।

৪. Step 4: Reflection এর মাধ্যমে অ্যানোটেশনগুলি পড়া

এখন, Reflection ব্যবহার করে আপনি সেই ক্লাস থেকে অ্যানোটেশনগুলি পড়তে পারবেন। Tags কন্টেইনার অ্যানোটেশন থেকে Tag অ্যানোটেশনগুলো এক্সট্র্যাক্ট করতে পারেন।

import java.lang.annotation.Annotation;

public class AnnotationReader {
    public static void main(String[] args) {
        Class<?> clazz = ExampleClass.class;

        // Check if the class has any tags
        if (clazz.isAnnotationPresent(Tags.class)) {
            Tags tags = clazz.getAnnotation(Tags.class);

            // Print all tags
            for (Tag tag : tags.value()) {
                System.out.println(tag.value());
            }
        }
    }
}

আউটপুট:

Java
Programming

এখানে, AnnotationReader ক্লাসটি ExampleClass এর উপর প্রয়োগ করা Tag অ্যানোটেশনগুলো সংগ্রহ করেছে এবং তাদের মানগুলি প্রিন্ট করেছে।


Repeatable Annotations এর সুবিধা

  1. ডুপ্লিকেট অ্যানোটেশনগুলি সহজে পরিচালনা করা: একাধিক অ্যানোটেশন প্রয়োগ করতে নতুন কন্টেইনার অ্যানোটেশন তৈরি করতে হয়, এবং এতে কোড আরও পরিষ্কার ও সঠিক হয়।
  2. Flexible and Cleaner Code: একাধিক similar অ্যানোটেশনগুলো একসাথে পরিচালনা করা যায় এবং কোড লেখা আরও পরিষ্কার হয়।
  3. Reflection Support: Java reflection এর মাধ্যমে সহজে এই অ্যানোটেশনগুলি এক্সেস করা যায়।

সারসংক্ষেপ

Java 8 এর repeatable annotations ফিচারটি @Repeatable অ্যানোটেশন ব্যবহার করে, একটি নির্দিষ্ট অ্যানোটেশনকে একাধিক বার প্রয়োগ করার সুযোগ দেয়। এটি বিশেষত তখন উপকারী যখন একই ধরনের মেটাডেটা একাধিক বার প্রয়োগ করতে হয়, যেমন কোনো ক্লাস বা মেথডের উপরে একাধিক ট্যাগ অ্যানোটেশন প্রয়োগ করা।

  • Repeatable annotation: @Repeatable দ্বারা চিহ্নিত করা হয় যাতে একই অ্যানোটেশন একাধিকবার প্রয়োগ করা যায়।
  • Container annotation: একটি নতুন অ্যানোটেশন যা সেই পুনরাবৃত্তি অ্যানোটেশনগুলোকে ধারণ করে।

Java 8-এর repeatable annotations ফিচারটি কোডের রিডেবিলিটি এবং মেইনটেইনেবিলিটি বাড়ায় এবং মাল্টিপল অ্যানোটেশন ব্যবস্থাপনা সহজ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...