You can create a parent class Message
, and sub-classes DataMessage
and TextMessage
.
When receiving a Message
, you can check with instanceof
its underlying type, and handle it accordingly.
These *Message
classes could wrap any objects you want to pass between client and server in their member variables. The *Message
classes would have to be serializable, consequently all member variables must be serializable too.
For example given these Message
types:
class Message {}
class TextMessage extends Message {
String text;
}
class DataMessage extends Message {
User user;
}
You can handle received messages like:
Message message = (Message) in.readObject();
if (message instanceof TextMessage) {
// do something with ((TextMessage)message).text
} else if (message instanceof DataMessage) {
// do something with ((DataMessage)message).user
}