2013-10-12 5 views
0

Я использую ObjectInputStream с сокетами tcp для извлечения и отправки сериализуемых объектов, которые являются основной семантикой моей программы. Но для того, чтобы отнести их к объектам, сначала нужно проверить один за другим с помощью instanceof, чтобы определить, являются ли они одними определенными в настоящее время классами. Проблема в том, что мне может понадобиться еще много таких классов. Я знаю, что нет отличного способа сканирования всех подклассов, но я могу каким-то образом использовать сериализуемый интерфейс для восстановления объекта.несколько объектов-кандидатов через ObjectInputStream в java

коротышка вот что я имею в виду

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 (...), такие вещи, как

Как вы можете видеть, это не так много, чтобы повторить это, написав что-то подобное в разных местах.

+0

Ваш вопрос путается здесь. После in.readObject(), если десериализация завершается успешно, «запрос» уже имеет правильный класс. Какие дальнейшие шаги вы захотите обработать? («Такие вещи») –

ответ

0

Я не уверен, как именно вы десериализируете это, но можете ли вы просто использовать метод getClass и передать его на какой-то завод?

Смежные вопросы