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;
    ...
}

または、ディレクターと副ディレクターを強制したい場合は、以下のように Staff クラスをサブクラス化できます。

public final class Director extends Staff {
    ...
}

public final class DeputyDirector extends Staff {
    ...
}

注:Staffクラスを作成しないでくださいfinal。そうしないと、これらのサブクラスを作成できません。

そして、Course以下のように、クラスにそれらの特定のクラスを使用させます。

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

【編集済】

どのようなsetDatabase()方法をとればよいかわかりません。意味のある名前を考えてみることをお勧めします。ただし、私の提案に従えば、次のようにメソッドを定義できます。

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

Courseobject には、関連するオブジェクトとそれに関連付けられたオブジェクトがStaffあります。Unit

于 2012-05-22T08:36:29.027 に答える