我对包含来自不同类的对象的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)对它们进行排序。
答案 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);
}