0
courses = new ArrayList<Course>();
units = new HashMap<Integer,Unit>();
staffs = new HashMap<Integer,Staff>();

我可以像这样将单元班和员工班映射到课程班吗?我想将数据作为序列化数据存储到 dat 文件中。

我的场景是这样的。课程单位多,课程主任1人,副主任1人,均来自职工班。

我确实喜欢第一个。问题是我有一个名为 database.java 的类,在那里我有一个这样的方法。

public boolean setDatabase(ArrayList<Course> iCourse, Map<Integer,Unit> iUnit)

所以如果我使用这个:

courses = new ArrayList<Course>();
units = new HashMap<Integer,Unit>();
staffs = new HashMap<Integer,Staff>();

我可以在下面试试这个吗?

public boolean setDatabase(ArrayList<Course> iCourse, Map<Integer,Unit> iUnit, Map<Integer,Staff> iStaff) 
4

1 回答 1

5

尝试这个,

public final class Course {
    Staff director;
    Staff deputyDirector;
    List<Unit> units;
    ...
}

或者如果你想强制主任和副主任,那么你可以像下面这样子类化你的员工类,

public final class Director extends Staff {
    ...
}

public final class DeputyDirector extends Staff {
    ...
}

注意:不要创建你的Stafffinal,否则你不能创建这些子类。

然后让你的Course班级使用那些特定的班级,如下所示,

public final class Course {
    Director director;
    DeputyDirector deputyDirector;
    List<Unit> units;
    ...
}

[已编辑]

我不知道应该setDatabase()用什么方法。我建议你想一个有意义的名字。但是,如果您按照我的建议,您将能够如下定义您的方法,

public boolean setDatabase(List<Course> courses) {
    ...
}

Course对象将具有相关的StaffUnit与之关联的对象。

于 2012-05-22T08:36:29.027 回答