如果我们有一个带有一堆属性的对象,是否有一种简单的方法可以在构造函数中有效地分配这些属性?
例如,在下面的类中,我在构造函数中有三行代码可以简单地传递数据。
"id":4
有没有更有效的方法(如果您有更多的变量)?我知道class XYZ {
int x, y, z;
XYZ(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}
}
方法。不是我真正想要的东西,在这里。
有效是指更少且更干净的代码。现在,有很多样板代码。我只是想知道是否有更聪明的方法来做到这一点。
答案 0 :(得分:1)
在Java中,必须初始化构造函数中的每个参数化Value。 我看不出这怎么奏效。 如果碰巧有更多的变量,则绝对应该再次查看构建器模式,否则,当对象变得复杂时,可以在类中创建嵌入式对象。
如果您只是想在编辑器中使用干净的代码,请查看lombok项目:https://projectlombok.org/features/constructor
它将在编译时创建构造函数,并且您拥有干净的代码。
@AllArgsConstructor
public class XYZ {
private int x, y, z;
}
答案 1 :(得分:1)
假设要传递给构造函数的参数超过3个,一个好的做法是将它们分组在一个类中。
因此,您将传递3个包含3个原语的对象,而不是将9个原语args传递给构造函数。
这里的代价是您将创建其他对象。但是,使用jdk9和beyondq
时,该成本应该合理地较低