Java序列化不同的对象

时间:2016-01-17 22:32:29

标签: java sockets serialization

我想制作一个由两个客户发送消息的小型网络游戏。 我是套接字和序列化的新手,但我读到通过套接字发送序列化对象是可行的方法。

我的问题是,我有多种类型的消息。一个可能是一个简单的聊天消息,另一个是转弯(消息),如" NewObjectMessage"或" MoveObjectMessage" ...

在教程中,我总是阅读类似

的内容
MyClass myClass = (MyClass) objectinputstream.readObject();

对我放在另一端的流中的一个特定类进行了转换。

问题是:有什么方法可以确定我得到的是什么样的信息? 我正在寻找像

这样的东西
stream.peekObject() 

或其他东西,以便看到它的类型。

或者是发送两条消息的常用方法,第一条消息只是一个声明,告诉接下来会发生什么?但是如果某些软件包混淆了,下一个对象不是我要求的那个会发生什么呢?

那么以何种方式在客户之间进行通信的最佳方式是什么?移动对象并创建对象(或编写消息等)?

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

只需将对象作为对象读取,然后使用-1-1i查看它的类型。

或者让对象都使用action方法实现一个公共接口,然后转换为接口并调用方法。

答案 1 :(得分:0)

我认为你要找的是object.getClass().getName();