IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Serialization et classe anonyme


Sujet :

Langage Java

  1. #1
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut Serialization et classe anonyme
    Bonjour,

    Dans une partie de mon code, j'ai une classe Serializable qui définie des classes anonymes transient et static que je ne veux pas serializer et lors de la sérialisation des instances de la classe serialisable j'ai une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final transient public static Comparator INVERSE_LEVEL_NUMBER_COMPARATOR = new Comparator() {...}
    Message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.io.NotSerializableException: com.michelin.gp2.ui.domain.ProcessusLevel$3
    A priori, la JVM ne devrait pas essayer de serialiser cette classe anonyme.

    Quelqu'un aurait-il une solution à me proposer...

    Merci.

  2. #2
    Membre expérimenté Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Par défaut
    Slt,

    il faudrait montrer ta classe qui herite de serializable et le type des objets que tu serialises.

  3. #3
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    A part les 3 classes anonymes, on n'a que des attributs simples et aussi serializable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class ProcessusLevel implements Comparable, Serializable {
     
    	private static Map allLevel = new HashMap();
    	private static final long serialVersionUID = 1L;
    	private ProcessusLevelData data;
     
    	private final String level;
    	private Integer trueNumber = null;
    	private String propagation = null;
    ...
    }
    Le reste des méthodes est composé de simples getter et setter avec qques opérations, mais rien d'exceptionnel.

    Merci...

  4. #4
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    ça c'est curieux: qu'entends tu par un champ qui soit à la fois "static" et "transient" ?
    ( pas interdit par la norme, mais dans le cas de la serialisation les champs statiques ne sont pas concernés.... alors quelle est l'idée?)

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Es-tu sûr que l'erreur vienne de la classe anonyme dont tu as donné le code ?
    Je viens d'essaye et je n'ai pas d'erreur.
    Peux-tu nous montrer plus de code (notamment la déclaration des classes anonymes) ?
    Pour savoir quelle est la classe incriminée tu peux décompiler le fichier ProcessusLevel$3.class (cf Jad)
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  6. #6
    Membre expérimenté Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Par défaut
    Comme dis le y@m's, je ne suis pas sure que ca vienne de ta classe anonyme.

  7. #7
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    Me revoilà...
    Comme j'suis plus au boulot, j'ai plus les sources , mais en gros, ce qui me fais dire que cela vient de la classe anonyme, c'est le message d'erreur qui contient ProcessusLevel$3 .

    Les classes anonymes sont notées comme ça par le compilo le nom de la classe englobante plus $ plus le numéro de la classe.

    Pour le static transient, il y a effectivement redondance, transient est ici inutile mais si je l'enlève, ça ne marche pas quand même

    Dès que je récupère les sources complètes de la classe, je vous les fais parvenir...

    Merci pour les réponses et si qqu'un a une piste avant que je poste les sources, je suis preneur.

    Merci

Discussions similaires

  1. [Conception] passage de parametres dans classe anonyme
    Par taillooo dans le forum Langage
    Réponses: 5
    Dernier message: 07/06/2007, 21h30
  2. [Info]Classe anonyme - interne
    Par thibaut dans le forum Langage
    Réponses: 8
    Dernier message: 31/08/2006, 13h18
  3. Variable d'instance et classe anonyme
    Par zoullou dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 21/05/2006, 12h30
  4. Réponses: 5
    Dernier message: 16/08/2005, 10h30
  5. [classe anonyme] implementant une interface
    Par stanilas dans le forum Langage
    Réponses: 4
    Dernier message: 30/11/2004, 00h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo