Все работает, всему соответствует.
В мейне код для проверки.
Могу еще представить, что может генерироваться какое-то не учтенное исключение, но почему, например, 3-е требование не выполняется?
package com.javarush.task.task20.task2017;
import java.io.*;
/*
Десериализация
*/
public class Solution implements Serializable{
public A getOriginalObject(ObjectInputStream objectStream) throws IOException{
try {
A a = (A) objectStream.readObject();
if (a.getClass().getSimpleName().equals("A")) {
return a;
}
else {
return null;
}
}
catch (ClassNotFoundException e) {
e.getStackTrace();
return null;
}
}
public class A implements Serializable{
}
public class B extends A {
public B() {
System.out.println("inside B");
}
}
public static void main(String[] args) throws IOException{
/* ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("d:/jrfiles/2017.txt"));
Solution tmp = new Solution();
A test = tmp.new B();
out.writeObject(test);
out.close();
ObjectInputStream in = new ObjectInputStream(new FileInputStream("d:/jrfiles/2017.txt"));
A a = tmp.getOriginalObject(in);
in.close();
System.out.println(a);
System.out.println(a.getClass().getSimpleName());*/
}
}