public enum FOO{
TATA(TOTO,TITI);
public FOO(BAR bar1,BAR bar2) {
bar1.associate(this,bar2);
}
}
public enum BAR {
TOTO,
TITI;
private FOO _foo;
private BAR _bar;
public void associate(FOO foo,BAR bar) {
_foo = foo;
_bar = bar;
}
}
問題は、私のコードでFOOの前にBARを呼び出したことです。その結果、BARのフィールドはnullになりました。私はついにその理由を知りました。(列挙型は、初めて呼び出されたときにのみインスタンス化されます)。この問題を修正するためFOO.TATA;
に、特定のファイルでBarを使用する前に追加しました。
だから私の質問、ある列挙型が別の列挙型の前にインスタンス化されることを確認するためのよりエレガントな方法はありますか?