gpt4 book ai didi

java - 使用默认值初始化数组中的对象 - java

转载 作者:行者123 更新时间:2023-12-02 03:38:51 26 4
gpt4 key购买 nike

有没有办法为要初始化的数组中的对象定义默认值?

与声明基本类型数组时初始化基本类型相同的方式:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com