我正在创建一个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?
答案 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(), ...}
我更喜欢循环......