有没有办法为要初始化的数组中的对象定义默认值?
与声明基本类型数组时初始化基本类型相同的方式:
int[] myIntArray = new int[5]; // we now have an array of 5 zeroes
char[] myCharArray = new char[2]; // an array in which all members are "\u0000"
等等
我想声明一个我定义的类型的对象数组,并让它们以类似的方式自动初始化。
我想这意味着我想运行 new myObject()
对于数组中的每个索引(使用默认构造函数)。
我无法在网上找到任何相关内容,我得到的最接近的是使用 Arrays.fill(myArray, new MyObject())
初始化数组后(实际上只是创建一个对象并用指向它的指针填充数组),或者只是使用循环遍历数组并初始化每个单元格。
谢谢!
编辑:我意识到这不仅与数组相关,而且与声明一般对象并使它们默认为值/自动初始化有关。
最佳答案
Java 8 方式:
MyObject[] arr = Stream.generate(() -> new MyObject())
.limit(5)
.toArray(MyObject[]::new);
这将创建一个无限的 Stream供应商 () -> new MyObject()
生成的对象,将流限制为所需的总长度,并将其收集到数组中。
如果您想在对象上设置某些属性或其他内容,您可以有更多参与的供应商:
() -> {
MyObject result = new MyObject();
result.setName("foo");
return result;
}
关于java - 使用默认值初始化数组中的对象 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36312406/