0

我正在使用带有 tcp 套接字的 ObjectInputStream 来检索和发送可序列化对象,这是我的程序的核心语义。但是为了将它们转换为 objects ,首先我需要使用 instanceof 逐一检查它们是否是当前定义的类。问题是我最终可能需要更多这些课程。我知道没有扫描所有子类的好方法,但我可以利用可序列化接口以某种方式重建对象。

矮个子就是我的意思

MyObj implements Serializable
....
SubClass1OfMyObj extends MyObj
Subclass2OfMyObj extends MyObj
Subclass3OfMyObj extends MyObj 
....
MyObj request = (MyObj)in.readObject();
if( request instanceof Subclass1OfMyObj)
if( request instanceof Subclass2OfMyObj)
if( request instanceof Subclass3OfMyObj)
....

编辑:我需要能够在这里实例化正确的子类。像新的 Subclass1OfMyObj (...) 之类的东西

正如你所看到的,这样做不是很可重用,在多个地方写这样的东西。

4

1 回答 1

0

我不确定你是如何反序列化这个的,但是你能简单地使用这个getClass方法并将它传递给某种工厂吗?

于 2013-10-12T13:33:15.073 回答