2つの列挙型が互いに参照することがあります。それぞれには、他の列挙型のパラメータを持つコンストラクタがあります。互いに参照する列挙型は、呼び出される順序によって異なる結果を生成します。
彼らのようなものに見える:しかし列挙は私が参照変数にnull値を得ることができ、最初に呼び出すかに応じ
SchoolEnum(ImmuneEnum value)
{
this.immune = value;
}
ImmuneEnum(SchoolEnum value)
{
this.school = value;
}
を。
ImmunityEnum immune = ImmunityEnum.IMMUNE_KANNIC;
SchoolEnum school = SchoolEnum.KANNIC;
System.out.println(school.getImmune())
System.out.println(immune.getSchool());
は出力を生成します。 ヌル Kannic
SchoolEnum school = SchoolEnum.KANNIC;
ImmunityEnum immune = ImmunityEnum.IMMUNE_KANNIC;
System.out.println(school.getImmune())
System.out.println(immune.getSchool());
は出力を生成します。 immunekannic ヌル
へと「鶏と卵」問題のビットのようですenumがインスタンス化されたとき。しかし、それぞれが適切に他を参照させる方法はありますか?人工的に2つのシングルトンハッシュマップを作成することを検討していますが、より良いアイデアはありますか?
列挙子:
は今、このようにそれを使うのか?他のコンストラクタを持つコンストラクタ?列挙子はなく、ctorsは "ctors"を持たず、もう一方を参照するインスタンス変数を設定します。あなたはそれらを構築する場所を表示しませんが、それぞれが他のものを参照するシングルトンである場合、デザインを再考したいかもしれません - 実際の関係は何ですか? –
私は、各コンストラクタにコンストラクタがあるとは言いませんでした。私はそれぞれのコンストラクタにパラメータがあると言っていました。 – Robert