First page Back Continue Last page Overview Graphics
Serializable 1
Pro automatické ukládání/načítání stavu objektu // IOFile.java
- včetně privátních dat, neukládají se statické datové složky
Jednoduché, ale
- změna API
- jména, přidání/odebrání, musí být navždy (kompat.)
- serialVersionUID (jméno třídy, rozhraní, public + private + ... dat.)
- testování kompatibility
- Security (z priváního se stáva public API)
- přístup k private, readObject (“veřejný konstruktor”, null, defensive copy mutabl.)
- složitější dědění (není dobré volat virtuální metody)
- korektní implementace “readObject”, “writeObject” (defaultRead/WriteObject)
- rodič musí poskytovat konstruktor bez parametrů (nebo musí být Serializable)
- prázdný konstruktor {} + kontrola inicializace konstruktorem s parametry
- nevhodné pro inner classes (nestandarizované názvy)
- složitější objekty
- seznam, graf – nepotřebná data, velikost, stack owerflow
- transient
- “nesmysl” např. pro hash (HashMap, ...) – různé hash funkce
Vhodné pouze pro datové objekty