Serializace – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Serializace – Java – Fórum – Programujte.comSerializace – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Sony0
Návštěvník
29. 12. 2008   #1
-
0
-

zdravim,
nevíte někdo proč mi to furt vyhazuje "java.io.NotSerializableException" ?



public class neco {
private int a;
private int b;

public void setA(int x){
a=x;
}
public void setB(int x){
b=x;
}

}
...

neco x=new neco();
x.setB(1);
x.setA(5);

ObjectOutput out = new ObjectOutputStream(new FileOutputStream("test.dat"));
out.writeObject(x);
out.close();
} catch (IOException e) {
System.out.println("Chyba při zápisu souboru : "+e);



java.io.* mam naimportovaný

Nahlásit jako SPAM
IP: 78.102.47.–
Reklama
Reklama
o-lox0
Super člen
29. 12. 2008   #2
-
0
-

Když chceš ukládat celou třídu musíš jí implementovat alespoň rozhraní Serializable (a když si budeš chtít zahrát s formátem ukládání později i - Externalizable)

public class neco implements Serializable

a myslim, že pokud je podtřídou (třeba v Main class) tak nahoře :
public class Main implements Serializable { class neco .... }


takhle jak to děláš může uložit nejspíš holý Object.

Nahlásit jako SPAM
IP: 85.71.152.–
Sony0
Návštěvník
29. 12. 2008   #3
-
0
-

jo dik už mi to šlape :), btw co znamená že to může uložit holý objekt?

Nahlásit jako SPAM
IP: 78.102.47.–
o-lox
~ Anonymní uživatel
301 příspěvků
29. 12. 2008   #4
-
0
-

To Sony : toto: Object x; out.writeObject(x); // ulozil jsem Object - cca 5bytes. rekneme javovsky zakladni kamen pro vse ostatni

Nahlásit jako SPAM
IP: 85.71.152.–
Sony0
Návštěvník
29. 12. 2008   #5
-
0
-

jo jasny, tomu se řiká holý objekt..phd, dik

Nahlásit jako SPAM
IP: 78.102.47.–
Murmand
~ Anonymní uživatel
18 příspěvků
13. 8. 2009   #6
-
0
-

Zdavím,
mám podobný problém. Mám třídu

        public class upominka implements Serializable {

private int priorita;
private String text;

private upominka(int pr,String t) {
priorita = pr;
text = t;
}

public int vypisPr() {
return priorita;
}

public String vypisT() {
return text;
}
}

která je podtřídou
public class SnadFinalView extends FrameView

v hlavní třídě (SnadFinaView) mám následující Array list, včetně vložení nějakých dvou hodnot
public ArrayList<upominka> seznamUpominek = new ArrayList<upominka>();


seznamUpominek.add(new upominka(1,"bagr"));
seznamUpominek.add(new upominka(5,"koko"));

Hodnoty jsou vloženy správně, jdou vypsat. Když se ale snažím celý ArrayList serializovat pomocí kódu
        FileOutputStream fileOut = new FileOutputStream(System.getProperty("user.dir")+ "\\upominky.dat"); 

ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(seznamUpominek);
out.close();

háže mi to
SEVERE: null

java.io.NotSerializableException: snadfinal.SnadFinalView

Bez těch 4 řádků serializace to šlape v pořádku. Když jsem zkoušel implementovat Serializable na SnadFinalView, tak chyba byla pořád stejná.
Už opravdu nevím co s tím. Děkuji za jakoukoliv pomoc...

Nahlásit jako SPAM
IP: 213.192.4.–
Murmand
~ Anonymní uživatel
18 příspěvků
13. 8. 2009   #7
-
0
-

Dokonce ani takto to nefunguje a hází to pořád stejnou chybu...

        try {

ObjectOutput out = new ObjectOutputStream(new FileOutputStream(System.getProperty("user.dir")+ "\\upominky.dat"));
out.writeObject((upominka) seznamUpominek.get(0));
out.close();
} catch (IOException e) {
System.out.println("Chyba při zápisu souboru : "+e);
}

Nahlásit jako SPAM
IP: 213.192.4.–
Murmand
~ Anonymní uživatel
18 příspěvků
13. 8. 2009   #8
-
0
-

Vyřešeno, problém byl v tom, že i když jsem Serializable naiplementoval do naprosto všeho, pořád to bylo pod swingem, což mi mohl dojít... bylo potřeba to lupnout mimo View :o)

Nahlásit jako SPAM
IP: 213.192.4.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 51 hostů

Podobná vlákna

Serializace v C++ — založil Deril

Serializace XML — založil Jerryss

Automatická serializace a výkon — založil Honza Jebavý

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý