java.io.NotSerializableException is thrown when the object is not eligible for the serialization. You must implement the Serializable interface to make the class eligible for the serialization. This is a marker interface which tells the JVM that the class can be serialized. Look at the below example.
Employee.java
Employee class which not implementing the serializable interface.
[code lang=”java”]
package javabeat.net.io;
public class Employee {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
[/code]
NotSerializableExceptionExample.java
This class tries to serialize the object by writing to the ObjectOutputStream. However, it throws the exception.
[code lang=”java”]
package javabeat.net.io;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
/**
* java.io.NotSerializableException Example
*
* @author Krishna
*
*/
public class NotSerializableExceptionExample {
public static void main(String[] args) throws IOException{
//Create FileOutputStream to create file
FileOutputStream out = new FileOutputStream("employee.dat");
//Create ObjectOutputStream
ObjectOutputStream outputStream = new ObjectOutputStream(out);
//Create objects
Employee obj = new Employee();
obj.setId("001");
//Write objects to stream
outputStream.writeObject(obj);
//Always close the stream
outputStream.close();
}
}
[/code]
java.io.NotSerializableException Thrown
To fix this exception, Employee class must implement the serializable interface.
[code]
Exception in thread "main" java.io.NotSerializableException: javabeat.net.io.Employee
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1181)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at javabeat.net.io.NotSerializableExceptionExample.main(NotSerializableExceptionExample.java:13)
[/code]
Leave a Reply