BeanUtils.copyProperties() এর ব্যবহার

Copying Properties (প্রপার্টি কপি করা) - জাভা বীনইউটিলস (Java BeanUtils) - Computer Programming

343

BeanUtils.copyProperties() মেথড হল Apache Commons BeanUtils লাইব্রেরির একটি শক্তিশালী ফিচার, যা এক Java Bean থেকে অন্য Java Bean-এ প্রপার্টি কপি করার জন্য ব্যবহৃত হয়। এই মেথডটি খুবই কার্যকরী এবং সহজে একটি অবজেক্টের প্রপার্টি অন্য অবজেক্টে কপি করতে সহায়তা করে, বিশেষত যখন দুটি অবজেক্টের মধ্যে প্রপার্টির নাম এবং টাইপ একই থাকে।

BeanUtils.copyProperties() মেথডের মূল সুবিধা:

  1. প্রপার্টি কপি করা: একটি অবজেক্ট থেকে অন্য অবজেক্টে প্রপার্টি কপি করার জন্য ব্যবহার করা হয়।
  2. টাইপ কনভার্সন: এটি কিছু পরিমাণ টাইপ কনভার্সনও করতে পারে, যেমন String থেকে Integer বা Date টাইপ কনভার্সন।
  3. নেস্টেড প্রপার্টি সাপোর্ট: এটি nested properties (অর্থাৎ, এক অবজেক্টের মধ্যে আরেক অবজেক্ট) কপি করতে পারে।
  4. সহজ ব্যবহার: সাধারণত getter এবং setter মেথড ব্যবহার করতে হয়, কিন্তু BeanUtils.copyProperties() খুব সহজভাবে ডেটা কপি করতে সাহায্য করে।

BeanUtils.copyProperties() এর সেন্ট্যাক্স:

BeanUtils.copyProperties(Object dest, Object orig);
  • dest: গন্তব্য অবজেক্ট যেখানে প্রপার্টি কপি করা হবে।
  • orig: উৎস অবজেক্ট যা থেকে প্রপার্টি কপি করা হবে।

এই মেথডটি উৎস অবজেক্টের সমস্ত প্রপার্টি কপি করে গন্তব্য অবজেক্টে, যেখানে নাম এবং টাইপ মিল থাকে।


BeanUtils.copyProperties() এর ব্যবহারিক উদাহরণ

উদাহরণ ১: সাধারণ প্রপার্টি কপি

import org.apache.commons.beanutils.BeanUtils;

public class BeanUtilsExample {
    public static void main(String[] args) {
        try {
            // Source object
            Person source = new Person("John", 25);

            // Target object
            Person target = new Person();

            // Copy properties from source to target
            BeanUtils.copyProperties(target, source);

            // Output the copied properties
            System.out.println("Target Name: " + target.getName());  // Output: John
            System.out.println("Target Age: " + target.getAge());    // Output: 25
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Person {
    private String name;
    private int age;

    // Constructor, getter and setter methods
    public Person() {}

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

    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;
    }
}

ব্যাখ্যা:

  • source থেকে target অবজেক্টে প্রপার্টি কপি করার জন্য BeanUtils.copyProperties() মেথড ব্যবহার করা হয়েছে।
  • এখানে name এবং age প্রপার্টি কপি করা হয়েছে।

উদাহরণ ২: টাইপ কনভার্সন সহ প্রপার্টি কপি

import org.apache.commons.beanutils.BeanUtils;

public class BeanUtilsTypeConversionExample {
    public static void main(String[] args) {
        try {
            // Source object with String property
            Employee source = new Employee("E123", "John Doe", "50000");

            // Target object
            Employee target = new Employee();

            // Copy properties from source to target with type conversion
            BeanUtils.copyProperties(target, source);

            // Output the copied properties
            System.out.println("Target Employee ID: " + target.getEmployeeId());  // Output: E123
            System.out.println("Target Name: " + target.getEmployeeName());       // Output: John Doe
            System.out.println("Target Salary: " + target.getSalary());          // Output: 50000.0
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Employee {
    private String employeeId;
    private String employeeName;
    private double salary;

    // Constructor, getter and setter methods
    public Employee() {}

    public Employee(String employeeId, String employeeName, String salary) {
        this.employeeId = employeeId;
        this.employeeName = employeeName;
        this.salary = Double.parseDouble(salary);  // Converting String to double
    }

    public String getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(String employeeId) {
        this.employeeId = employeeId;
    }

    public String getEmployeeName() {
        return employeeName;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
}

ব্যাখ্যা:

  • Employee ক্লাসে salary একটি String হিসেবে দেয়া আছে, কিন্তু Employee অবজেক্টে তা double টাইপে কনভার্ট করা হয়েছে।
  • BeanUtils.copyProperties() মেথড টাইপ কনভার্সন করে, অর্থাৎ, String থেকে double টাইপে কনভার্ট করে প্রপার্টি কপি করবে।

উদাহরণ ৩: নেস্টেড প্রপার্টি কপি

import org.apache.commons.beanutils.BeanUtils;

public class NestedPropertyExample {
    public static void main(String[] args) {
        try {
            // Create Address object
            Address address1 = new Address("Street 123", "City A");

            // Create Person object with nested Address object
            Person person1 = new Person("John", 30, address1);

            // Target Person object
            Person person2 = new Person();

            // Copy properties including nested Address
            BeanUtils.copyProperties(person2, person1);

            // Output copied properties including nested object
            System.out.println("Name: " + person2.getName());         // Output: John
            System.out.println("Age: " + person2.getAge());           // Output: 30
            System.out.println("Address: " + person2.getAddress().getStreet());  // Output: Street 123
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Person {
    private String name;
    private int age;
    private Address address;

    public Person() {}

    public Person(String name, int age, Address address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }

    // 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;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}

class Address {
    private String street;
    private String city;

    public Address(String street, String city) {
        this.street = street;
        this.city = city;
    }

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
}

ব্যাখ্যা:

  • এখানে Person ক্লাসে একটি Address অবজেক্ট অন্তর্ভুক্ত আছে। BeanUtils.copyProperties() মেথড ব্যবহার করে, Address ক্লাসের প্রপার্টি কপি করা হচ্ছে।
  • nested property হিসেবে address.street কপি হচ্ছে।

সারাংশ

  • BeanUtils.copyProperties() মেথড Java Bean-এ প্রপার্টি কপি করার একটি শক্তিশালী এবং সহজ পদ্ধতি।
  • এটি টাইপ কনভার্সন এবং নেস্টেড প্রপার্টি কপি সাপোর্ট করে, যা ডেটা ম্যানিপুলেশনকে অনেক সহজ করে দেয়।
  • BeanUtils.copyProperties() বিভিন্ন ডেটা ট্রান্সফার, টেস্টিং, এবং বিভিন্ন Java অবজেক্টের মধ্যে যোগাযোগের জন্য একটি গুরুত্বপূর্ণ টুল।
Content added || updated By
Promotion

Are you sure to start over?

Loading...