java - 对象数组初始化

标签 java

我正在创建一个对象数组,有什么方法可以从同一行调用对象的构造函数吗?

//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/

相关文章:

java - 我可以将所有这些功能放入一个枚举中吗?

java - 如何在大数字串中找到重复的数字子序列?

JavaFX FileChooser.showOptionDialog(stage) 从其他类获取舞台

java - 为什么 Tomcat 7 服务器在 Ubuntu 上停止?

java - onSensorChanged() 未被调用

java - struts 2 <if>标签用于选择复选框

java - 如何使用 Spring Boot 将文件放在 servlet 上下文路径上?

java - Java中一个类如何扩展两个类?

java - 是否可以在硬件中运行 Java 应用程序

java - 扫描仪在 if 语句内无法正常工作