"Hej, Amigo! Jag skulle vilja berätta en liten detalj till om serialisering."
Anta att vår klass innehåller en referens till någon InputStream . Då går det inte att serialisera, eller hur?
"Rätt. Du sa själv att strömmar inte kan serialiseras. Och du kan inte serialisera ett objekt som har icke-serialiserbar data."
"Just. Bara så. Men tänk om klassen lagrar data som inte spelar en betydande roll i dess tillstånd och ändå hindrar klassen från att betraktas som en serialiserbar klass? Strunt i att en klass kan lagra onödiga saker. Den kan slänga detta data när som helst och kanske till och med gör det – hela tiden."
För dessa fall kom Javas skapare på det övergående nyckelordet. Om vi skriver detta nyckelord före en medlemsvariabel, kommer det att ignoreras under serialisering. Dess tillstånd kommer inte att räddas eller rekonstrueras. Som om det inte fanns. Det här är bara grejen för de situationer vi just funderade på.
Kommer du ihåg caching och den flyktiga modifieraren? Det finns inga regler utan undantag .
Här är ett sådant exempel på denna lycka:
Ett «katt»-exempel med en variabel som är osynlig för serialisering:
class Cat implements Serializable
{
public String name;
public int age;
public int weight;
transient public InputStream in = System.in;
}
GO TO FULL VERSION