Thanks for all the replies and a great discussion! I ended up implementing a Factory class as smr and Bacterius have suggested and believe it is a suitable solution for now. I am trying to hack up the network layer reasonably quickly so I can begin to implement the more exciting details of the game, but at the same time I want it to be a reasonable solution that follows some common conventions.
This is why I have opted to use the Externalizable interface rather than retain full control over the data.
Also, thank you for your explanation of the Dispatcher Sprangle, I will most likely end up implementing something of this sort when I move onto message handling.