Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中有没有一种使用构造函数参数快速分配多个类变量的方法?_Java_Constructor - Fatal编程技术网

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

在Java中有没有一种使用构造函数参数快速分配多个类变量的方法?,java,constructor,Java,Constructor,如果我们有一个具有一组属性的对象,有没有一种简单的方法可以在构造函数中有效地分配这些属性 例如,在下面的类中,我在构造函数中有三行代码来简单地传递数据 class XYZ { int x, y, z; XYZ(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } } 有没有更有效的方法(如果你有更多的变量)?我知道Builder方法

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

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

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


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

在Java中,必须初始化构造函数中的每个参数化值。 我不明白这怎么会无效。 如果碰巧有更多的变量,那么一定要再次查看生成器模式,否则,当对象变得复杂时,可以在类中创建嵌入对象

另外,如果您只想在编辑器中使用干净的代码,请查看lombok项目:

它将在编译时创建构造函数,并且您有一个干净的代码

@AllArgsConstructor
public class XYZ {
  private int x, y, z;
}

假设有3个以上的参数要传递给构造函数,一个好的做法是将它们分组到一个类中

因此,您将传递包含3个基元的3个对象,而不是将9个基元参数传递给构造函数


这里的成本是您将创建额外的对象。然而,jdk9和beyondq的成本应该相当低,定义有效,您到底想要实现什么?更新了我的问题。希望这有帮助。对我来说,这似乎是一种干巴巴的违规行为(如果你有很多属性,那么就需要大量的输入)。@MWB但是没有重复的代码。你可能想看看其他JVM语言,Groovy支持“更快的方式”,其他人可能会这样做。基本上,这不是重复的代码。这是“样板”。您可以使用lombok或类似的库。IDE还可以生成构造函数、setter、getter等。对于您来说,您也可以使用java中的注释处理器(生成构造函数)。注释还可以提到构造函数的特定字段列表及其可见性。