tl;dr classes should not be serializable directly, use external mechanisms to dehydrate / rehydrate objects if necessary. IIRC serialization came about because Java wanted to be able to send whole objects to other JVMs, something that's become less and less reasonable since its original proposal.