"Hej, Amigo! Jeg vil gerne fortælle dig en lille detalje mere om serialisering."
Antag, at vores klasse indeholder en reference til noget InputStream . Så kan det ikke serialiseres, vel?
"Godt. Du sagde selv, at streams ikke kan serialiseres. Og du kan ikke serialisere et objekt, der har ikke-serialiserbare data."
"Godt. Bare sådan. Men hvad nu hvis klassen gemmer data, der ikke spiller en væsentlig rolle i dens tilstand og alligevel forhindrer klassen i at blive betragtet som en serialiserbar klasse? Det er ligeglad med, at en klasse kan gemme unødvendige ting. Den kunne kaste dette ud. data til enhver tid og måske endda gør det – hele tiden."
Til disse tilfælde kom Javas skabere med det forbigående nøgleord. Hvis vi skriver dette nøgleord før en medlemsvariabel, vil det blive ignoreret under serialisering. Dens tilstand vil ikke blive gemt eller rekonstrueret. Som om det ikke eksisterede. Dette er lige sagen for de situationer, vi lige har overvejet.
Husk caching og den flygtige modifikator? Der er ingen regler uden undtagelser .
Her er et sådant eksempel på denne lykke:
Et «kat»-eksempel med en variabel, der er usynlig for serialisering:
class Cat implements Serializable
{
public String name;
public int age;
public int weight;
transient public InputStream in = System.in;
}
GO TO FULL VERSION