package com.javarush.test.level20.lesson10.home02;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;
/* Десериализация
На вход подается поток, в который записан сериализованный объект класса A либо класса B.
Десериализуйте объект в методе getOriginalObject предварительно определив, какого именно типа там объект.
Реализуйте интерфейс Serializable где необходимо.
*/
public class Solution implements Serializable {
public A getOriginalObject(ObjectInputStream objectStream) {
Object object = null;
try {
object = objectStream.readObject();
if (object instanceof B)
return (B) object;
else
return (A) object;
}
catch (IOException e) {
e.printStackTrace();
return null;
}
catch (ClassNotFoundException e) {
e.printStackTrace();
return null;
}
}
public class A implements Serializable {
}
public class B extends A {
public B() {
System.out.println("inside B");
}
}
}
Leave A Comment