【问题标题】:java copy ONLY non-null modified properties value from one object to another objectjava仅将非空修改属性值从一个对象复制到另一个对象
【发布时间】:2018-02-22 03:29:59
【问题描述】:

在我的 Java 应用程序中,仅将非空的已修改属性值从一个对象复制到另一个对象。

Class Emp{
   private String name;
   private int age;
   private String city;
  // setter object
}

我有两个对象

  1. "fromDb" --> 值为 name="James"、age=30 和 city="Mumbai"

  2. "fromPage" --> 具有值 name="James"、age=35 和 city=null

    这里的“fromPage”有两个修改后的属性值 - 1. age 30 to 35 and city Mumbai to null 在这里,我想将 non-null 值从“fromPage”复制到“fromDb” 所以最终的“fromDb”将是 name="James"、age=35 和 city="Mumbai"

apache BeanUtils.copyProperties 将复制所有属性值。 有没有什么api或者更好的方法可以完成,而不是比较每个属性。它是一个jabx类,所以它很大。

【问题讨论】:

    标签: java object properties copy


    【解决方案1】:

    如果你想使用BeanUtilsBean,你可以扩展类并覆盖你想要改变的方法。

    public class IgnoreNullBeanUtilsBean extends BeanUtilsBean {
      ...
      @Override
      public void copyProperties(final Object dest, final Object orig) {
        ...
        final Object value = getPropertyUtils().getSimpleProperty(orig, name);
        if (value != null) {
          copyProperty(dest, name, value);
        }
        ...
      }
      ...
     }
    

    【讨论】:

    • 我认为这是一种丑陋的方式,也许其他库可以优雅地解决它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多