Diskuze: Implementace Serializable
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 12 zpráv z 12.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Uložil jsi třídu v jedné verzi a snažíš se ji načíst v jiné, při každé změně struktury třídy se to ID přegeneruje, pokud ho nemáš nastavené manuálně.
Manuálně ho můžeš nastavit tak, že do třídy přidáš
static final long serialVersionUID = 1L;
a kam všude mám dopsat tenhle atribut ID?
Jen jako člena té třídy, kterou serializuješ.
To jsem udělal, vyhazuje to stejnou chybu...
teda stejnou ne, tuhle:
logika.Absolvent; local class incompatible: stream classdesc serialVersionUID =
-3143379283109629711, local class serialVersionUID = 1
Však se snažíš se deserializovat něco, co jsi předtím serializoval bez udané verze (takže se tam automaticky vygenerovalo číslo verze: -3143379283109629711), ale tvoje třída nyní má verzi 1.
Otevírat můžeš jen to, co jsi uložil stejnou verzí.
Díky, ale na mě musíš asi pomalu... přidal jsem atribut, jak jsi řekl. Vyhazuje to, co jsem sem napsal. Nechápu další krok.
To co jsi uložil předtím ve verzi -3143379283109629711, teď prostě neotevřeš, protože je to v souboru označené jako verze -3143379283109629711, ale napsáním toho ID jsi té třídě řekl, že umí otevírat jen verzi 1.
Řešením je teď po označení za verzi 1 ty data vytvořit a uložit znovu a pak už ti to půjde otevřít, dokud to číslo verze nezměníš nebo dokud nezměníš strukturu třídy takovým způsobem, který by to naboural.
Případně to ID změň na to -3143379283109629711 a otevřeš i ty staré
soubory, pokud ti nevadí tam mít takovéhle hausnumero
Super, pochopil jsem. Díky moc
Ještě bych měl dotaz... když mám takhle nastavený ID, tak se mi v pořádku ukládaj ty objekty, všechno se mi zobrazuje v JTable. Jenže se mi nějaký atributy z těch objektů, který mám v tabulce zobrazujou špatně, resp. mi je to nevrací vůbec a dává tam nějakou defaultní hodnotu. Vypadá to tak, že přidám nějakou osobu do seznamu a prostě všechny mají stejné jméno i příjmení. Jakmile odstraním to ukládání, atribut ID, tak vše funguje jak má.
Takhle bez kódu mě teď nic nenapadá - zkus to sem hodit
Zobrazeno 12 zpráv z 12.