互いに相互参照する2つの列挙型があります。それぞれに、他の列挙型のパラメーターを持つコンストラクターがあります。
それらは次のようになります。
SchoolEnum(ImmuneEnum value)
{
this.immune = value;
}
ImmuneEnum(SchoolEnum value)
{
this.school = value;
}
ただし、最初に呼び出す Enum によっては、参照変数の null 値を取得できます。
ImmunityEnum immune = ImmunityEnum.IMMUNE_KANNIC;
SchoolEnum school = SchoolEnum.KANNIC;
System.out.println(school.getImmune())
System.out.println(immune.getSchool());
出力を生成します: null Kannic
SchoolEnum school = SchoolEnum.KANNIC;
ImmunityEnum immune = ImmunityEnum.IMMUNE_KANNIC;
System.out.println(school.getImmune())
System.out.println(immune.getSchool());
出力を生成します: immunokannic null
列挙型がいつインスタンス化されるかについては、少し「鶏と卵」の問題のようです。しかし、それぞれが他のものを適切に参照する方法はありますか? 2 つを人為的に相互参照する 2 つのシングルトン ハッシュマップを作成することを検討していますが、より良いアイデアはありますか?