Bonjour à tous.
J'avance doucement mais sûrement dans mon application.
Jusque là le peu que j'ai fait fonctionne: ajouter une personne à une liste, enregistrer,...
Je code l'inverse: enlever une personne à une liste précise.
Dans l'idée je sais ce qu'il faut faire.
Je vais donc dans ma classe "Classe" pour ajouter la méthode qui permettra de retirer un élève de sa classe.
Voici ma classe "Classe:
Et voici la méthode que je désire créer:
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 public class Classe implements Serializable { public String classe; private TreeMap<String,Eleve> listeEleves; public Classe(){ listeEleves = new TreeMap<>(); } public void ajouterEleve(String n, String p, String c){ Eleve nouveau = new Eleve(n,p,c); String cle = creerUneCle(n,p,c); if (listeEleves.get(cle)==null) listeEleves.put(cle,nouveau); else { JOptionPane jop_EleveExiste = new JOptionPane(); jop_EleveExiste.showMessageDialog(null, "Cet élève est déjà dans la liste!","ATTENTION", JOptionPane.WARNING_MESSAGE); } } private String creerUneCle(String n, String p, String c){ return n+p+c; } public String quelleClasse(){ return classe; } public TreeMap<String,Eleve> quelleListe(){ return listeEleves; } }
J'ai eu droit à une gros message un peu incompréhensible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public void retirerEleve(String n, String p, String c){ //Traitement... }
J'ai enlevé tout traitement: même problème.Exception in thread "main" java.io.InvalidClassException: Evalcomp.Classe; local class incompatible: stream classdesc serialVersionUID = 9039132454754699755, local class serialVersionUID = 2724284564699585259
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at java.util.HashMap.readObject(HashMap.java:1155)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1872)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1777)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1970)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1894)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1777)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at Evalcomp.FluxListeClasses.lire(FluxListeClasses.java:33)
at Evalcomp.Accueil.chargement_Données(Accueil.java:275)
at Evalcomp.Accueil.<init>(Accueil.java:102)
at Evalcomp.EvalComp.main(EvalComp.java:11)
Java Result: 1
GÉNÉRATION TERMINÉE (durée totale* 1 seconde)
J'ai créé une méthode identique dans le traitement à une autre méthode déjà crée, mais en changeant bien sûr le nom:
Même problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public String quelleClasseBis(){ return classe; }
En gros je n'arrive plus à ajouter de méthode.
Si je supprime ces tentatives, tout fonctionne.
Je ne comprends l'erreur: pourquoi même en ne mettant rien dedans cela pose un problème?
Merci.
Partager