不同对象类的Java arraylist

时间:2012-11-26 12:30:12

标签: java class object arraylist

我对包含来自不同类的对象的arraylist的理解存在问题。我有6个物体。所有对象都有2个共同的属性。(ID,Type) 每个对象都有自己的属性。我用2 atr(ID,Type)创建了mainObject类。其他对象扩展mainObject,因此它们具有

class mainClass{
    this.id=id;
    this.type=type;
}
class extendedClass extends mainClass{
    super(ID,Type);
    this.atr1=atr1;
}

class extendedClass2 extends mainClass{
    super(ID,type);
    this.atr2=atr2;
    this.atr3=atr3;
}

我从文件中读取了信息。

FileInputStream fstream = new FileInputStream("data.txt");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
// Read File Line By Line
while ((strLine = br.readLine()) != null) {
    // Print the content on the console
    String s[] = strLine.split("\\|");
    mainClass myObj = new mainClass(s[0], s[1]);

ArrayList<mainClass> items = new ArrayList<mainClass>();
items.add(myObj);

我需要逐行从文件中读取所有对象并将它们存储在数组列表中。 我该怎么办?我尝试了ArrayList<Object> list = new ArrayList<Object>,但它没有用。该点是从文件中读取所有对象,由于所选属性(id,type)对它们进行排序。

1 个答案:

答案 0 :(得分:3)

您是正确的,需要mainClass的列表:

ArrayList<mainClass> items = new ArrayList<mainClass>();

但是你应该把这一行放在while循环之前,而不是在它里面。

ArrayList<mainClass> items = new ArrayList<mainClass>();

while ((strLine = br.readLine()) != null) {
    // etc...
    items.add(myObj);
}