The java.io.Serializable Interface

Objects that implement the java.io.Serializable interface can have their state saved and restored. This state includes data from all of the classes in the object’s class hierarchy. So an object need not worry about the serialization of data from superclasses, as this is handled automatically.

The Serializable interface has no methods. It is used as a marker, indicating that the class is serializable. All subclasses of a class that implements this interface will also be serializable. So it is not necessary to declare that a class implements java.io.Serializable if one of its superclasses has already done so. The object serialization mechanism analyzes objects that implement java.io.Serializable, looking for data members to save or restore. By default, all non-static and non-transient data members will be serialized.

Let’s take a look at a simple example. We create an applet that contains a single instance of java.awt.Button, which is serializable. The button’s Label property is set by specifying it as a parameter of the constructor. In this case the string Beans Book is used. We also set the button’s Font property, using a bold 36-point font. After adding the button to the applet, we serialize the button to file Saver.tmp. Figure 5.2 shows the applet, and its code is shown here:

import java.applet.*; import java.awt.*; import java.io.*; public class SimpleSaver extends Applet { public void init() { Button b = new Button("Beans Book"); b.setFont(new ...

Get Developing Java Beans now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.