Toon posts:

[Java] foutmelding: java.io.NotSerializableException

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een programma aan het schrijven (in java) waarin ik 2 linked lists weg wil schrijven naar een .dat file.
het compilen gaat goed maar wanneer ik runtime in het programma de LL weg schrijf krijg ik de volgende foutmelding:
code:
1
 java.io.NotSerializableException

dus ik op google gezocht wat deze foutmelding betekent dan snap ik wel dat het probleem is dat mijn object niet serializable is. maar ik weet niet hoe ik dit probleem moet oplossen

het programma bestaat uit 4 java files.
1 voor de GUI
2 voor popupschermen waar de invoer in plaatsvindt
en 1 voor de dataverwerkinging. waar alle verder weergegeven code in staat.


het gedeelte van het programma waarin ik de data probeer weg te schrijven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    // opslaan gegevens in database    
    public void databaseOpslaan(){
        String option[] = new String[]{"ja","nee"};
        int keuze = JOptionPane.showOptionDialog(null,"Database opslaan?","Opslaan",JOptionPane.YES_NO_OPTION,
                    JOptionPane.QUESTION_MESSAGE,null,option,option[1]);
        if(keuze==0)
        {
            try
            {
                ObjectOutputStream uit = new ObjectOutputStream( new FileOutputStream("data.dat"));
                System.out.println("geen IO-exeptie" + dvds);
                uit.writeObject(dvds);
                System.out.println("geen IO-exeptie");
                uit.writeObject(personen);
                uit.writeObject(Koppellijst);
                uit.close();
            }
            catch(IOException e)
            {
                System.out.println("IO-exeptie"+e);
            }    
        }
    }



en de regel waarin ik serializable declareer:
code:
1
public class Dvddatabase implements java.io.Serializable  {

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Alle elementen in je Dvddatabase klasse moeten ook serializable zijn anders gaat het ook niet.

Verwijderd

Topicstarter
Gert schreef op donderdag 17 februari 2005 @ 11:43:
Alle elementen in je Dvddatabase klasse moeten ook serializable zijn anders gaat het ook niet.
je reactie leidde tot de oplossing. Ik had dus de LL in een aparte klasse gedeclareerd en daar moest dus ook nog
code:
1
implements java.io.Serializable
achter.
probleem opgelost.
er mag van mij een slotje op modjes

Verwijderd

Nog even een tip voor misschien een volgende keer, gebruik ipv de code tag de code=java tag, dan ziet het er als volgt uit:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    // opslaan gegevens in database    
    public void databaseOpslaan(){
        String option[] = new String[]{"ja","nee"};
        int keuze = JOptionPane.showOptionDialog(null,"Database opslaan?","Opslaan",JOptionPane.YES_NO_OPTION,
                    JOptionPane.QUESTION_MESSAGE,null,option,option[1]);
        if(keuze==0)
        {
            try
            {
                ObjectOutputStream uit = new ObjectOutputStream( new FileOutputStream("data.dat"));
                System.out.println("geen IO-exeptie" + dvds);
                uit.writeObject(dvds);
                System.out.println("geen IO-exeptie");
                uit.writeObject(personen);
                uit.writeObject(Koppellijst);
                uit.close();
            }
            catch(IOException e)
            {
                System.out.println("IO-exeptie"+e);
            }    
        }
    }


Dat is net even wat duidelijker ;)