Given the following Person record:
and the following method fragment:
Assume that the try block is completed with necessary catch blocks and the file contains a serialized Person and opens correctly.
The code from which option, when placed where the comment is, properly deserializes the object and allows the rest of the code to work?
* 'var & casting'
* 'var & no casting'
* 'no var & no casting'
* 'var and null'
#java #certificationquestion #ocp
Answer: The right option is 'var & casting'
The other options are wrong:
'var & no casting' is wrong because the return type of the readObject method is declared as Object; so var will infer an Object type rather than a Person type.
Then calling the person.name() will fail (because Object has no name(0 method).
'no var & no casting' is wrong: first, because we call twice readObject(), so we miss the first.
Secondly, because person is a Person type and we assign an Object type.
We should cast it like: 'person = (Person)in.readObject();'.
'var and null' is wrong because var can't infer the type from null.