合并Java中的两个对象


问题内容

我有两个相同类型的对象。

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

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

obj1 => {a = "hello"; b = null; c = 10}
obj2 => {a = null; b = new ArrayList(); c = default value}

您能否让我知道将这些对象组合为单个对象的最佳方法是什么?

obj3 = {a = "hello"; b = (same arraylist from obj2); c = 10}

问题答案:

也许像

class A {
    String a;
    List<..> b;
    int c;

    public void merge(A other) {
        this.a = other.a == null ? this.a : other.a;
        this.b.addAll(other.b);
        this.c = other.c == 0 ? this.c : other.c;
    }
}

A a1 = new A();
A a2 = new A();

a1.a = "a prop";
a2.c = 34;

a1.merge(a2);

A.merge可能会返回一个新A对象,而不是修改当前对象。