有没有一种快速的方法来使用Java中的构造函数参数来分配多个类变量?

时间:2019-02-09 11:53:05

标签: java constructor

如果我们有一个带有一堆属性的对象,是否有一种简单的方法可以在构造函数中有效地分配这些属性?

例如,在下面的类中,我在构造函数中有三行代码可以简单地传递数据。

"id":4

有没有更有效的方法(如果您有更多的变量)?我知道class XYZ { int x, y, z; XYZ(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } } 方法。不是我真正想要的东西,在这里。

有效是指更少且更干净的代码。现在,有很多样板代码。我只是想知道是否有更聪明的方法来做到这一点。

2 个答案:

答案 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

时,该成本应该合理地较低