Bean থেকে Map তৈরি করার পদ্ধতি

Bean Map Creation (বিন ম্যাপ তৈরি করা) - জাভা বীনইউটিলস (Java BeanUtils) - Computer Programming

395

Java Bean থেকে Map তৈরি করার জন্য Apache Commons BeanUtils লাইব্রেরি ব্যবহার করা যেতে পারে। BeanUtils-এর describe() মেথড ব্যবহার করে আপনি একটি Java Bean-এর প্রপার্টি এবং তাদের মানকে একটি Map-এ কনভার্ট করতে পারেন। এই পদ্ধতিটি বিশেষত তখন কাজে আসে যখন আপনাকে একটি Bean-এর ডেটা Map আকারে প্রক্রিয়া করতে হয়।

1. BeanUtils.describe() মেথড ব্যবহার করা

describe() মেথডটি একটি Java Bean-এর প্রপার্টি নাম এবং মানের একটি Map রিটার্ন করে। এখানে Map-এর key হবে Bean-এর প্রপার্টির নাম এবং value হবে সেই প্রপার্টির মান।

describe() মেথডের সেন্ট্যাক্স:

public static Map<String, String> describe(Object bean) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException;
  • bean: Bean অবজেক্ট যা থেকে ডেটা কপি করা হবে।
  • Map<String, String>: প্রতিটি Bean প্রপার্টি একটি string key-value পেয়ার হিসাবে Map-এ থাকবে।

2. Bean থেকে Map তৈরি করার উদাহরণ

উদাহরণ ১: সাধারণ Bean থেকে Map তৈরি করা

import org.apache.commons.beanutils.BeanUtils;
import java.util.Map;

public class BeanToMapExample {
    public static void main(String[] args) {
        try {
            // Create a Person object (Bean)
            Person person = new Person("John", 30);

            // Convert Bean to Map using BeanUtils.describe()
            Map<String, String> personMap = BeanUtils.describe(person);

            // Output the Map
            System.out.println("Bean to Map:");
            for (Map.Entry<String, String> entry : personMap.entrySet()) {
                System.out.println(entry.getKey() + ": " + entry.getValue());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Person {
    private String name;
    private int age;

    // Constructor
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Getter and Setter methods
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

ব্যাখ্যা:

  • এখানে describe() মেথড ব্যবহার করে Person Bean থেকে একটি Map তৈরি করা হয়েছে।
  • Map এর key হবে প্রপার্টির নাম (যেমন "name" এবং "age") এবং value হবে সেই প্রপার্টির মান (যেমন "John" এবং 30)।

আউটপুট:

Bean to Map:
name: John
age: 30

3. নোট:

  1. Map-এ ডেটা ভ্যালু: describe() মেথডে সমস্ত প্রপার্টির মান String হিসেবে থাকবে। সুতরাং, আপনি যদি Integer, Double, বা অন্য কোন ডেটা টাইপের প্রপার্টি চান, তাহলে আপনি প্রয়োজনীয় কাস্টম কনভার্সন করতে পারেন।
  2. নেস্টেড প্রপার্টি: describe() মেথড শুধুমাত্র সরাসরি Bean-এর প্রপার্টি রিটার্ন করে, নেস্টেড প্রপার্টির জন্য আপনাকে আলাদা কাস্টমাইজেশন করতে হবে।

4. Map থেকে Bean তৈরি করা

এছাড়া, আপনি যদি একটি Map থেকে Bean তৈরি করতে চান, তখন BeanUtils.populate() মেথড ব্যবহার করতে পারেন। এটি Map বা অন্যান্য ডেটা সোর্স থেকে Bean-এ ডেটা populate করতে সহায়তা করে।

উদাহরণ: Map থেকে Bean তৈরি করা

import org.apache.commons.beanutils.BeanUtils;
import java.util.HashMap;
import java.util.Map;

public class MapToBeanExample {
    public static void main(String[] args) {
        try {
            // Create a Map with key-value pairs
            Map<String, String> dataMap = new HashMap<>();
            dataMap.put("name", "Alice");
            dataMap.put("age", "25");

            // Create a Person object (Bean)
            Person person = new Person();

            // Populate Bean using BeanUtils.populate()
            BeanUtils.populate(person, dataMap);

            // Output the populated Bean properties
            System.out.println("Map to Bean:");
            System.out.println("Name: " + person.getName());  // Output: Alice
            System.out.println("Age: " + person.getAge());    // Output: 25
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Person {
    private String name;
    private int age;

    // Constructor
    public Person() {}

    // Getter and Setter methods
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

ব্যাখ্যা:

  • এখানে একটি Map তৈরি করা হয়েছে, যেখানে key Bean-এর প্রপার্টি নাম এবং value প্রপার্টির মান।
  • BeanUtils.populate() ব্যবহার করে Map থেকে Person Bean-এ ডেটা populate করা হয়েছে।

আউটপুট:

Map to Bean:
Name: Alice
Age: 25

5. Bean থেকে Map এ Nested Properties কপি করা

describe() মেথড শুধুমাত্র সরাসরি প্রপার্টি কপি করে, তাই nested properties কপি করার জন্য আপনাকে কিছু কাস্টম লজিক ব্যবহার করতে হতে পারে। সাধারণত, nested properties ম্যানিপুলেট করতে BeanUtilsBean বা PropertyUtils ব্যবহার করা হয়।


সারাংশ

  • BeanUtils.describe() মেথড ব্যবহার করে Java Bean থেকে একটি Map তৈরি করা যায়, যেখানে Bean-এর প্রপার্টির নাম key এবং মান value হিসেবে Map-এ রাখা হয়।
  • Map থেকে Bean তৈরি করার জন্য BeanUtils.populate() মেথড ব্যবহার করা হয়, যা Map-এর key-value পেয়ার অনুযায়ী Bean-এর প্রপার্টি populate করতে সাহায্য করে।
  • describe() মেথড কেবল সরাসরি প্রপার্টি কপি করে, nested প্রপার্টি ম্যানিপুলেট করতে আলাদা কাস্টমাইজেশন প্রয়োজন হতে পারে।
Content added || updated By
Promotion

Are you sure to start over?

Loading...