Bonjour,
Dans une application de gestion de personnel (cas d'école) j'ai une classe Personnel avec un variable entière statique qui permet de générer un identifiant automatiquement:
Ensuite on a codé une classe générique Conteneur<K, V> qui à une clée K assosie une valeur V. Cette classe est codée avec un arbre, on y a ajouter les méthodes charger(String fichier) et sauvegarder(String fichier) pour enregistrer les données dans un fichier par sérialization.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public abstract class Personnel { private String id; private static int dernierId = 1; protected String nom, numTel; public Personnel(String nom, String numTel) { this.id = "M" + (1000 + dernierId++); this.nom = nom; this.numTel = numTel; } public String getId() { return id; } }
Dans notre application fenêtrée ensuite on créer un Conteneur<String, Personnel> que l'on rempli (la clé étant l'id du personnel). On peut alors créer, ajouter, supprimer du personnel dans le conteneur, puis à tout moment sauvegarder ou charger nos personnel (dans un fichier, par sérialization).
Le problème: Lorsque je démarre mon application, aucun fichier n'est chargé. J'en ouvre alors un que j'ai créé précédemment, il se charge sans soucis, mais je ne peux pas créer de personnel car la variable statique dernierId est initialisée à 1 au démarrage. Donc si je créer un personnel avec new Personnel(nom, tel) je créer un doublon de la clé "M1001" et je ne peux donc pas ajouter à mon Conteneur...
Comment faire pour restaurer la variable statique au chargement d'un fichier ?
D'avance merci pour vos idées !
Partager