我正在创建一个对象数组,有什么方法可以从同一行调用对象的构造函数吗?
//Creating an array of employees
Employee[] emp=new Employee[10];
//above line creates only references pointing to null, how can i create objects
//by calling constructors in the same line?
最佳答案
更新:现在可以在带有 Java 流的单行中实现:
Employee[] arr = Stream.generate(() -> new Employee())
.limit(10)
.toArray(Employee[]::new);
下面的原始答案,仍然适用于 Java 8 之前的版本:
不,不是来自任何合理级别的同一行 - 约定是遍历数组并在需要时用对象填充它:
for(int i=0 ; i<emp.length ; i++) {
emp[i] = new Employee();
}
实际上,您希望在创建数组后立即用相同的对象填充数组(尤其是在 List
更流行的 Java 中),因此不存在除手动数组之外的速记初始化方法。如果您确实发现自己出于某种原因经常这样做,您可以将 for 循环转移到一个单独的 fill()
(或类似的)方法中,因此至少可以使以这种方式填充数组快速一个类轮。
关于java - 对象数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20714688/