对象数组初始化

时间:2013-12-21 02:10:45

标签: java

我正在创建一个Object数组,有没有办法从同一行调用对象的构造函数?

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

4 个答案:

答案 0 :(得分:5)

不,在任何合理的级别上都不是来自同一行 - 惯例是遍历数组并在需要时用对象填充它:

for(int i=0 ; i<emp.length ; i++) {
    emp[i] = new Employee();
}

在创建数组时,您希望用相同的对象填充数组实际上是相对不常见的(特别是在List更受欢迎的Java中),因此除了手动数组初始化方法之外,不存在任何简写。如果你确实发现自己经常出于某种原因这样做,你可以将for循环放到一个单独的fill()(或类似的)方法中,这样至少可以用这种方式快速填充数组。< / p>

答案 1 :(得分:2)

你可以做到完全荒谬的方式

Employee[] emp = new Employee[] {new Employee(/* args */), new Employee(/* args */), new Employee(/* args */), ...} ;

但确实没有意义。使用for循环。

答案 2 :(得分:2)

使用数组初始值设定项:

Employee[] emp = {new Employee("Joe"), new Employee("John")};

答案 3 :(得分:0)

您可以通过循环实现此目的:

for(int i = 0; i < emp.length; i++) {
    emp[i] = new Employee();
}

或直接初始化,如

Employee[] emp = {new Employee(), new Employee(), ...}

我更喜欢循环......

相关问题