// 1
public SomeObj(SomeObj objectToClone) {
this.x = objectToClone.x;
this.y = objectToClone.y;
}
лучше.
Ваш второй вариант потребует обновления вашего конструктора при каждом добавлении нового параметра.Кроме того, если вам нужно вызвать это в 100 местах с 100 свойствами для перечисления в каждом конструкторе, очевидно, что он начинает терять читабельность.
Я не могу понять, почему вы хотите передать несколько свойств одного и того же объектав качестве параметра вместо передачи объекта.Там нет причин для этого.
Сравните эти два значения:
public SomeObj(SomeObj objectToClone) {
this.x = objectToClone.x;
this.y = objectToClone.y;
this.z = objectToClone.z;
this.p = objectToClone.p;
this.s = objectToClone.s;
this.a = objectToClone.a;
this.b = objectToClone.b;
}
и затем наберите SomeObj(obj)
10 раз в вашем коде.
против SomeObj(obj.x,obj.y,obj.z,obj.p,obj.s,obj.t,obj.a,obj.b);
10 раз в вашем коде
Кроме того, со вторым вариантом вы не можете гарантировать, что переданные параметры соответствуют вашим требованиям, поэтому вы можете получить что-то вроде этого: SomeObj(obj.x,obj.y,obj2.z,obj3.p,0,0,-1,null);