public class Foo implements java.io.Serializable {
private int v1;
private static double v2;
private Loan v3 = new Loan();
}
Options:
A. An instance of Foo can be serialized because Foo implements Serializable.
B. An instance of Foo cannot be serialized because Foo contains a non-serializable instance variable v3.
C. If you mark v3 as transient, an instance of Foo is serializable.
D. b and c
Answer: D
Explanation: An object may not be serialized even though its class implements java.io.Serializable
, because it may contain non-serializable instance variables.
Now my question is:
As far as I know, transient is used to turn off serialization. Then how is transient in this case, helping us to serialize foo?