在ArrayList中存储具有不同基元类型的自定义对象

时间:2017-02-18 21:14:40

标签: java arrays custom-object

我想创建一个包含三个int和一个String的自定义对象,并将该对象存储在arrayList中,但我似乎遇到了问题,并且无法在线查找我的问题的文档。我在fac.add上遇到错误。这是代码

**对代码进行了一些更改

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
}

1 个答案:

答案 0 :(得分: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.
    }
}