Поскольку объект сериализация является более сложной, чем простая реализация сериализуемого (думают о прокси: проксированном объект может реализует Serializable, но не исходный объект и в своем коде вы все еще используете оригинальный класс)
Другим способ реализует сериализацию является Externalizable интерфейса, чтобы иметь полный контроль над сериализацией объекта или (из документации):
Классов, которые требуют специальной обработки во время сериализации и десериализации процесса должен реализовать специальные методы с этими точными подписями:
private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException;
private void writeObject(java.io.ObjectOutputStream stream) throws IOException
private void readObjectNoData() throws ObjectStreamException;
см. На странице ObjectOutputStream javadoc для получения дополнительной информации о процессе/механизме сериализации.
EDIT: ответить на ваш вопрос, переходное это ключевое слово, используемое только в контексте сериализации поэтому не Serializable
объекта с транзиторным полем не имеет смысла
Значит, это не имеет смысла? – MinecraftShamrock