CodeGym /Java kursus /Modul 2: Java Core /transient modifikator

transient modifikator

Modul 2: Java Core
Niveau , Lektie
Ledig

"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:

Kode
class Cat implements Serializable
{
 public String name;
 public int age;
 public int weight;

 transient public InputStream in = System.in; 
}
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION