To understand transient keyword, we must know the concept of
serialization. In serialization, Java object represented as a sequence of bytes
with data and its type. Object has been written into a file.
Now to declare any
object serialized, we must implement Serializable interface and declare the
object as transient. Any of the transient variables never is serialized. In the
below example, we declare String middleName as transient.
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
java.io.ObjectInputStream;
import
java.io.ObjectOutputStream;
import
java.io.Serializable;
class TryCatchData implements Serializable {
private String firstName;
private transient String middleName;
private String lastName;
public TryCatchData(String
firstName, String middleName, String lastName) {
this.firstName =
firstName;
this.middleName =
middleName;
this.lastName = lastName;
}
public String toString() {
StringBuilder
builder = new StringBuilder();
builder.append("First Name :
");
builder.append(this.firstName);
builder.append(" Middle Name
: ");
builder.append(this.middleName);
builder.append(" Last Name :
");
builder.append(this.lastName);
return builder.toString();
}
}
public class TryCatch {
public static void main(String args[]) throws Exception {
TryCatchData
writeData = new TryCatchData("Try", "2", "Catch");
ObjectOutputStream
outStream = new ObjectOutputStream(new FileOutputStream("TryCatchData"));
outStream.writeObject(writeData);
outStream.close();
ObjectInputStream
inputStream = new ObjectInputStream(new FileInputStream("TryCatchData"));
TryCatchData
readData = (TryCatchData) inputStream.readObject();
System.out.println(readData);
}
}
Output: First Name : Try Middle Name : null Last Name :
Catch