通常,反序列化是通过以下方式完成的:
PersistentTime time = null;
time = (PersistentTime)ois.readObject();
其中ois是ObjectInputStream对象,而PersistentTime是我们要反序列化的类。
因此,如果我的应用程序有2或3种通过网络发送的对象,是否有可能在不知道对象类型的情况下反序列化对象,或者先不知道对象的类型,然后再根据该类型反序列化呢?
最佳答案
当然;您已经这样做了!但是,如果要保存类型转换以供以后使用:
Object deserialized = ois.readObject();
if (deserialized instanceof PersistentTime) {
PersistentTime time = (PersistentTime)deserialized;
// do something with time...
} else if (deserialized instanceof SomethingElse) {
...
} else if (...) {
...
}