Salut,
je bute sur un problème depuis quelques temps, peut-être que quelqu'un aura la réponse ?
J'initialise un TreeMap dans une classe Test implémentant Serializable :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
this.items = new TreeMap(Collator.getInstance(Locale.FRENCH));
RuledBaseCollator n'implémente pas Serializable donc je ne peux pas sérialiser la classe Test (NotSerializableException). J'étend donc RuleBasedCollator :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public class TestRuleBasedCollatorextends RuleBasedCollator implements Serializable {
 
    public TestRuleBasedCollator() throws Exception {
 super(((RuleBasedCollator)Collator.getInstance(Locale.FRENCH)).getRules());
    }
Cette fois la sérialisation marche mais la lecture du fichier plante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.io.InvalidClassException: TestRuleBasedCollator; no valid constructor
Apparemment il n'y a pas moyen de supprimer le Collator d'un TreeMap.
Il n'y a pas non plus de fonction pour trier un TreeMap en utilisant un Collator. Pensez-vous que les seules solutions sont de créer une fonction qui triera le TreeMap ou alors de créer un nouveau TreeMap avant la sérialisation ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 this.items = new TreeMap(this.items);
Merci d'avance.
Bye ^^