Serialisation: transient

In Java kan je een instantie van een class serializen. Hiermee kan je de toestand van een object opslaan en later terug herstellen. Sommige dingen zijn niet te serializen of wil je niet serializen. Stel dat je een thread instantie hebt in je class. De class Thread kan je niet serializen. Logisch want het herstellen van geheugen is een hopeloze zaak, processen/threads switchen constant van memory. Maar als je thread in je class gebruikt, kan je die class niet serializen omdat thread niet serialisable is. Om dit op te lossen gebruiken we transient. Dit keyword voor de property zorgt ervoor dat die property niet wordt geserialised.

import java.io.*;

class Counter implements Serializable, Runnable
{
private int counter;
transient private Thread thread;

public Counter() {
thread = new Thread(this);
}

public void run() {
counter++;
}
}

In de serialisatie wordt enkel counter meegenomen.

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s

%d bloggers op de volgende wijze: