Bonjour à tous,
J'ai une classe nommé Preferences.class auquel j'associe un fichier serializable d'enregistrement.
Le problème est que si je met a jour cette classe automatiquement, le fichier n'est plus déserializable.
Voici la méthode que j'utilise pour mettre a jour.
-1 Demande de mise a jour
-2 On récupère le schéma de la future classe Preferences sur le serveur
-3 On crée un objet du schéma de la future classe
-4 On on modifie la valeurs des champs en associant les champs
-5 On serialize la nouvelle classe
J'ai terminé les actions (1-4-5) il me manque plus que l'action 2 et 3.
Pour l'action 2. Je récupère le schéma de la classe distante avec URLClassLoader.
Ce code fonctionne dans un classpath ou la classe preferences n'existe pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 URL url = new URL("http://serveur/v1.0.1/prog.jar"); //URLClassLoader loader = new URLClassLoader (new URL[] {url}); URLClassLoader cl = new URLClassLoader(new URL[] {url}); Class<?> cls = cl.loadClass("com.test.model.Preferences"); System.out.println("Class name = " + cls.getCanonicalName()); Method[] field_url = cls.getMethods(); for(Method champ_url : field_url){//On parcours les champs classe distante System.out.println("Methode:"+champ_url.getName()); }
Si cette classe existe dans le classpath, ça me retourne le schéma de la classe du classpath.
Le faite que la classe existe déjà dans le classpath me pose un problème.
Ma question est comment obtenir une classe A et une autre classe A²?
Merci
Partager