Sérialisation : méthode load à l'intérieur d'une classe [Résolu]

Fatango 2 Messages postés mardi 30 août 2005Date d'inscription 10 mars 2007 Dernière intervention - 10 mars 2007 à 12:45 - Dernière réponse : sheorogath 2465 Messages postés samedi 21 février 2004Date d'inscription 29 janvier 2010 Dernière intervention
- 10 mars 2007 à 14:24
Voila le problème :
J'ai une classe Mission dans laquelle je veux créer une méthode save(String PathFile) et load(String PathFile). Pour Save pas de problème mais pour load ...

Voici un exemple de code :

class Mission implements Serializable, Cloneable {
   ...
   public void Load(String PathFile)
   {
      try {
            FileInputStream InFile = new FileInputStream(File);
            ObjectInputStream ois = new ObjectInputStream(InFile);
             this = (Mission) ois.readObject();
      }
      ...
   }
}

Le problème c'est que this = (Mission) ois.readObject(); ne fonctionne pas !
Comment je peux charger un objet dans this
Merci pour vos réponses !

La vie est un tango
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
sheorogath 2465 Messages postés samedi 21 février 2004Date d'inscription 29 janvier 2010 Dernière intervention - 10 mars 2007 à 14:24
3
Merci
le mieu je trouve c'est de faire une methode load statique et tu ferais :
Mission mi = Mission.load("unfichier");
et dans load :

class Mission implements Serializable, Cloneable {
   ...
   public static void Load(String PathFile)
   {
      try {
            FileInputStream InFile = new FileInputStream(File);
            ObjectInputStream ois = new ObjectInputStream(InFile);
          return (Mission) ois.readObject();
      }
      ...
   }
}

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"

Merci sheorogath 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de sheorogath
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 10 mars 2007 à 13:19
0
Merci
Salut:

Tu dois implémenter l'interface Cloneable dans ta classe pour définir la manière avec laquelle tu fais le clonage des instances de ta classe Mission.



En fait, this = (Mission)ois.readObject () est un clonage de l'objet de l'objet retourné par readObject () avec l'objet courant this.



class Mission implements Serializable, Cloneable {
 
   public Object clone () {


       }
}



__________________________________________________________
A.B. :  La lumière voyage plus vite que le son. C'est pourquoi certaines personnes paraissent brillantes jusqu'à ce qu'elles commencent à parler ...
Commenter la réponse de Ombitious_Developper
Fatango 2 Messages postés mardi 30 août 2005Date d'inscription 10 mars 2007 Dernière intervention - 10 mars 2007 à 14:18
0
Merci
Merci de ta réponse,

Mais j'ai déjà implémenté clone( ).
 
Le problème est que pour Java "this" n'est pas une variable, c'est une référence et il ne veut pas modifier sa référence "this" sur l'objet renvoyé par readObject().

Peut être qu'il y a une méthode plus propre que de faire "this = ..." ?

La vie est un tango
Commenter la réponse de Fatango

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.