"Szia, Amigo! Szeretnék még egy apró részletet elmondani a szerializálásról."

Tegyük fel, hogy az osztályunk tartalmaz egy hivatkozást valamilyen InputStream -re . Akkor nem lehet sorozatosítani, igaz?

"Helyes. Maga mondta, hogy az adatfolyamokat nem lehet szerializálni. És nem szerializálhat olyan objektumot, amely nem szerializálható adatokkal rendelkezik."

"Helyes. Csak úgy. De mi van akkor, ha az osztály olyan adatokat tárol, amelyek állapotában nem játszanak jelentős szerepet, és mégis megakadályozza, hogy az osztályt szerializálható osztálynak tekintsék? Ne törődj azzal, hogy egy osztály szükségtelen dolgokat tárolhat. Feldobhatja ezt adatokat bármikor, és talán még is teszi – mindig."

Ezekre az esetekre a Java készítői a tranziens kulcsszót találták ki . Ha ezt a kulcsszót egy tagváltozó elé írjuk, akkor a szerializálás során figyelmen kívül hagyja. Állapotát nem mentjük el vagy rekonstruáljuk. Mintha nem is létezett volna. Ez csak azokra a helyzetekre vonatkozik, amelyeket most megvizsgáltunk.

Emlékszel a gyorsítótárazásra és az illékony módosítóra? Nincsenek szabályok kivételek nélkül .

Íme egy példa erre a boldogságra:

Egy "macska" példa egy változóval, amely nem látható a szerializálás számára:

Kód
class Cat implements Serializable
{
 public String name;
 public int age;
 public int weight;

 transient public InputStream in = System.in;
}