我有一个名为myRestaurant的类型的对象,它包含EmployeesAList,MenuAList和OrdersAList,每个对象都存储对象Employee,Menu_Item和Order的实例。 Order的每个实例都存储整数,字符串和整数的arraylist。
当我保存myRestaurant时,除了Orders类中的arraylist之外,每个arraylist都会被保存。
有什么建议吗?
在Runner中保存方法
public boolean SaveToFile(Restaurant myrest)
{
try
{
File outFile = new File("etrest.rest");
//creates object representing file
FileOutputStream outFileStream = new FileOutputStream(outFile);
//connection between program and file
ObjectOutputStream outObjectStream = new ObjectOutputStream(outFileStream);
//class which is used to pass objects which will be saved to file
//Write serializable ArrayList to file
outObjectStream.writeObject(myrest);
//output done, so close the stream
outObjectStream.close();
return true;
}
catch(IOException IOE)
{
System.out.println(IOE.toString()); //debug purpose
return false;
}
}
在餐厅添加订单的方法
ArrayList OrdersAList = new ArrayList();
public void AddOrder(Order o)
{
OrdersAList.add(o);
}
订单类的一部分 ArrayList Menu_ItemsIDAList = new ArrayList();
public Order()
{
paid = false;
WaiterNo = 0;
TableNo = 0;
item = 0;
}
public Order(boolean pd, int wN, int tN, int it)
{
paid = pd;
WaiterNo = wN;
TableNo = tN;
item = it;
}
//MENU ITEMS ENTERED PER ORDER
public void AddMenu_ItemID(int item)
{
Menu_ItemsIDAList.add(item);
}
当我创建Order的实例时,我创建一个循环来填充Menu_ItemsIDAList
答案 0 :(得分:0)
我无法完全重建你的问题...
您/我们应该更好地了解您的列表将被准确保存的位置,以及“添加”方法的位置?在哪个班......
所以我建议你做一个图表。在您的情况下,UML类图(http://en.wikipedia.org/wiki/Class_diagram)。
一旦理解了类,属性和关系,就可以绘制这样的图表,并以适当的方式使用代码。
当然,我们可以为您提供“缺少某些东西”的快速解决方案......但是对于未来的开发,您应该了解面向对象编程的基础知识。 UML类和UML用例图也是一个很好的开始......