0

我有一个名为 myRestaurant 的 Restaurant 类型对象,其中包含EmployeesAList、MenuAList 和OrdersAList,每个对象都存储Employee、Menu_Item 和Order 对象的实例。Order 的每个实例都存储整数、字符串和整数数组列表。

当我保存 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

4

1 回答 1

0

我无法完全重建您的问题...

您/我们应该更好地了解您的列表将准确保存在哪里,以及您的“添加”方法在哪里?在哪个级别...

所以我向你推荐,制作一个图表。在您的情况下,UML 类图(http://en.wikipedia.org/wiki/Class_diagram)。

一旦你理解了类、属性和关系,你就可以画出这样的图,并且可以以适当的方式使用代码。

当然,我们可以为您提供“缺少某些东西”的快速解决方案……但是对于未来的开发,您应该了解面向对象编程的基础知识。UML 类和 UML 用例图也是一个好的开始......

于 2013-02-09T16:47:30.960 回答