Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543

    problema serializzazione

    Salve, la struttura del mio programma per ora è
    (default package) -> nome.java
    finestre -> Interfaccia.java
    struttura -> Progetto.java

    nome.java contiene il main che istanzia Interfaccia che apre un JFrame...
    quando dal menù a tendina scelgo apri faccio visualizzare un JFileChooser
    quando apro il file richiamo un metodo di Interfaccia per deserializzare il file...

    in poche parole
    codice:
    main(){ new Interfaccia()}
    Interfaccia{
    Progetto prog = new Progetto();
    ....
    if (file_selezionato)
    prog.deserializza(file_selezionato);
    }
    mi restituisce una eccezione....
    local class incompatible: stream classdesc serialVersionUID = LONG, local cass seriaVersionUID = LONG

    ma io in Progetto, che implementa Serializable ho
    codice:
    	private static final long serialVersionUID = 8832230750161871173L;
    come mai mi genera l'eccezione>? come la risolvo?

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: problema serializzazione

    Originariamente inviato da oronze
    local class incompatible: stream classdesc serialVersionUID = LONG, local cass seriaVersionUID = LONG
    Non li hai indicati espressamente ma immagino che i due SUID siano appunto diversi!!

    Il SUID generalmente viene generato da un tool o IDE (anche se raramente e per cose "particolari" può essere impostato a piacimento) ed è un "hash" di un insieme di dati che comprendono nome della classe, delle interfacce, dei metodi e campi. In pratica una specie di "riassunto" della struttura della classe.

    Se i due SUID sono diversi, vuol dire che lo stream era stato creato con una certa struttura della classe che poi è stata in seguito modificata prima di rileggere lo stream.

    Senza sapere di più sulle tue classi non posso dire nulla.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    ho risolto...sono entrato nel forum per spiegare come...
    in realtà non era molto chiara la mia descrizione forse...impostavo il serial sia in Progetto che in Interfaccia e non so per quale motivo andavano in conflitto (probabilmente perchè solo progetto ha funzione per serializzare se stesso)
    cmq ti ringrazio per l'ulteriore delucidazione sull'UID...ora funziona correttamente...l'impostare a classi diverse l'UID è utile per applicazione server-client ma per la serializzaione per applicazione desktop basta impostarlo sulla sola classe che viene serializzata!

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.