ReflectionUtils和BeanUtils用于私有字段的用法

时间:2014-01-31 12:30:43

标签: reflection private apache-commons-beanutils

我需要使用另一个对象的字段在对象中设置一些私有字段。这两个对象可能不是同一个类的实例。
我从简短的阅读中看到,我可以使用Apache的BeanUtils和Spring的ReflectionUtils。关于安全性,性能,支持等,我找不到令人满意的解释 该解决方案也将用于生产环境,因此我需要一个具体的解决方案。 你建议采用哪种方法来完成这项任务。

1 个答案:

答案 0 :(得分:0)

我认为你只需要使用BeanUtils库。请参阅我的示例,我从CustomerBean到SellerBean执行复制属性。

package testes.beanutils;

import org.apache.commons.beanutils.BeanUtils;

public class Main {

public static void main(String[] args) throws Exception {
    Customer customer = new Customer();
    customer.setId((long)1);
    customer.setName("Bruno");
    customer.setLastname("Tafarelo");

    Seller seller = new Seller();

    BeanUtils.copyProperties(seller, customer);

    System.out.println(customer);
    System.out.println(seller);
    }
}

class Customer {

private Long id;

private String name;

private String lastname;

//getters and setters

//toString
}

class Seller {

private Long id;

private String name;

private int sales;

//getters and setters

//toString
}