Had*_*obi 2 java arrays default-value
有没有办法为要初始化的数组中的对象定义默认值?
与声明其数组时初始化基本类型的方式相同:
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"
Run Code Online (Sandbox Code Playgroud)
等等
我想声明一个我定义的类型的对象数组,并让它们以类似的方式自动初始化.我想这意味着我想new myObject()为数组中的每个索引运行(使用默认构造函数).
我无法在网上找到任何相关内容,我得到的最接近的是Arrays.fill(myArray, new MyObject())在初始化数组后使用(实际上只是创建一个对象并用指针填充数组),或者只是使用循环来遍历数组并初始化每个单元格.
谢谢!
编辑:我意识到这不仅与数组相关,而且与一般声明对象并使它们默认为值/自动初始化有关.
Java 8方式:
MyObject[] arr = Stream.generate(() -> new MyObject())
.limit(5)
.toArray(MyObject[]::new);
Run Code Online (Sandbox Code Playgroud)
这将创建一个无限流由供应商生成的对象() -> new MyObject(),限制了流的总所需的长度,并将其收集到一个数组.
如果您想在对象上设置某些属性,您可以拥有更多涉及的供应商:
() -> {
MyObject result = new MyObject();
result.setName("foo");
return result;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5632 次 |
| 最近记录: |