2017-02-18 40 views
0

我想用三個整數和一個String創建一個自定義對象,並將該對象存儲在arrayList中,但我似乎遇到問題並且無法找到關於我的在線問題的文檔。我在fac.add上遇到錯誤。這裏是做了一些修改代碼在ArrayList中存儲具有不同基元類型的自定義對象

package facility; 
import dal.DataAccess; 

public class FacilityInfo implements Facility { 

private int buildingNo, roomNo, capacity;; 
private String type; //classroom, conference room, office, etc. 

FacilityInfo(){}//default constructor 

FacilityInfo(int b, int r, int c, String t){ 
    this.buildingNo = b; 
    this.roomNo = r; 
    this.capacity = c; 
    this.type = t; 
} 
package dal; 
import java.util.*; 

import facility.FacilityInfo; 

public class DataAccess { 
    List<FacilityInfo> fac = new ArrayList<FacilityInfo>(); 
    fac.add(new FacilityInfo (1,2,10,conference));//changed code here 
} 
+0

有一個關於你在哪裏,宣佈3'int'場線的多餘的分號。 – 4castle

+0

旁註:除非變量名與構造函數參數相同,否則您不需要使用'this.'來引用全局變量。 –

+0

@MasterYushi默認構造函數只有在沒有定義的構造函數時纔會自動完成。 – 4castle

回答

2

這是因爲的原因主要有兩個代碼

**。

首先,1,2,10,conference不是FacilityInfo對象。您不能將FacilityInfo的參數添加到List,您必須添加一個實際的對象。

其次,你不能在代碼塊外面有語句,而且你現在直接在類體中調用fac.add(...);

試着這麼做:

public class DataAccess { 
    List<FacilityInfo> fac = new ArrayList<FacilityInfo>(); 

    public void initializeFac() { 
     fac.add(new FacilityInfo(1,2,10,"conference")); 
     // etc. 
    } 
} 
+0

還有一個'fac.add'如何在類體中調用,而不是在方法中調用。 – 4castle

+0

是的,方法調用需要在方法內 –

+0

謝謝我這樣做,併爲它創建了一個方法,並把它放在那裏,而不是類的主體,這工作 –

相關問題