"Hallo, Amigo! Ik wil je nog een klein detail vertellen over serialisatie."

Stel dat onze klasse een verwijzing bevat naar een of andere InputStream . Dan kan het niet worden geserialiseerd, toch?

'Juist. Je hebt zelf gezegd dat streams niet kunnen worden geserialiseerd. En je kunt een object dat niet-serialiseerbare gegevens bevat, niet serialiseren.'

"Juist. Precies. Maar wat als de klasse gegevens opslaat die geen significante rol spelen in zijn status en toch voorkomen dat de klasse als een klasse kan worden beschouwd die kan worden geserialiseerd? Het maakt niet uit dat een klasse onnodige dingen opslaat. Het zou dit kunnen weggooien data op elk moment en misschien zelfs wel - de hele tijd."

Voor deze gevallen bedachten de makers van Java het tijdelijke trefwoord. Als we dit trefwoord voor een lidvariabele schrijven, wordt het tijdens de serialisatie genegeerd. De staat wordt niet opgeslagen of gereconstrueerd. Alsof het niet bestaat. Dit is precies het juiste voor de situaties die we zojuist hebben overwogen.

Weet je nog caching en de vluchtige modifier? Er zijn geen regels zonder uitzonderingen .

Hier is zo'n voorbeeld van dit geluk:

Een «cat» voorbeeld met een variabele die onzichtbaar is voor serialisatie:

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

 transient public InputStream in = System.in; 
}