Merging two objects in Java

前端 未结 8 795
离开以前
离开以前 2020-12-15 23:25

I have two objects of same type.

Class A {
  String a;
  List b;
  int c;
}

A obj1 = new A();
A obj2 = new A();

obj1 => {a = \"hello\"; b = null; c = 10         


        
8条回答
  •  悲&欢浪女
    2020-12-15 23:53

    I am using Spring Framework. I was facing the same issue on a project.
    To solve it i used the class BeanUtils and the above method,

    public static void copyProperties(Object source, Object target)
    

    This is an example,

    public class Model1 {
        private String propertyA;
        private String propertyB;
    
        public Model1() {
            this.propertyA = "";
            this.propertyB = "";
        }
    
        public String getPropertyA() {
            return this.propertyA;
        }
    
        public void setPropertyA(String propertyA) {
            this.propertyA = propertyA;
        }
    
        public String getPropertyB() {
            return this.propertyB;
        }
    
        public void setPropertyB(String propertyB) {
            this.propertyB = propertyB;
        }
    }
    
    public class Model2 {
        private String propertyA;
    
        public Model2() {
            this.propertyA = "";
        }
    
        public String getPropertyA() {
            return this.propertyA;
        }
    
        public void setPropertyA(String propertyA) {
            this.propertyA = propertyA;
        }
    }
    
    public class JustATest {
    
        public void makeATest() {
            // Initalize one model per class.
            Model1 model1 = new Model1();
            model1.setPropertyA("1a");
            model1.setPropertyB("1b");
    
            Model2 model2 = new Model2();
            model2.setPropertyA("2a");
    
            // Merge properties using BeanUtils class.
            BeanUtils.copyProperties(model2, model1);
    
            // The output.
            System.out.println("Model1.propertyA:" + model1.getPropertyA(); //=> 2a
            System.out.println("Model1.propertyB:" + model1.getPropertyB(); //=> 1b
        }
    }
    

提交回复
热议问题