2017-02-18 72 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

谢谢我这样做,并为它创建了一个方法,并把它放在那里,而不是类的主体,这工作 –

相关问题