2013-12-21 207 views
1

我正在創建一個對象數組,有沒有辦法從同一行調用對象的構造函數?對象初始化數組

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

回答

5

不,不是從任何合理的水平在同一行 - 該公約是遍歷數組,如果需要使用對象填充:

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

它實際上是比較特殊的是要填充的數組與創建它時一樣(特別是在Java中,List更受歡迎),因此除了手動數組初始化方法之外,不存在速記。如果你發現自己經常出於任何原因而這樣做,那麼你可以將for循環放到單獨的fill()(或類似的)方法中,因此至少可以用這種方式快速地填充陣列。

2

你可以做完全荒謬的方式

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

但實在是沒有意義的。使用for循環。

2

使用數組初始化:

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

或直接初始化像

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

我喜歡的:

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

您可以用一個循環實現這一目標循環...