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;
}
}
Le problème était que dans mon code j'ai appelé BAR avant FOO. Le résultat était les champs dans BAR étaient null. J'ai finalement découvert pourquoi. (enum sont seulement instanciés quand ils sont appelés pour la première fois). Pour résoudre ce problème, j'ai ajouté FOO.TATA;
avant d'utiliser Bar dans un fichier spécifique.Java Enum instantiation
Donc, ma question, Y at-il une façon plus élégante de s'assurer qu'une énumération est instanciée avant une autre?
Que signifient ces ENUM représentent dans la vie réelle? Il semble que ce n'est pas un très bon endroit pour utiliser des enums. –
@NikitaBeloglazov étant utilisé dans une usine .. et malheureusement je n'ai pas ma parole à dire sur ce sujet. –