Хмм - если атрибут помечен как transient
, это означает точно , что это не означает, что он считается частью постоянного состояния объекта, например, для сериализации. Тот факт, что вы хотите сделать это вообще, является запахом кода, и правильное решение состоит в том, чтобы остановить эти поля переходными.
Допустим, по какой-то причине вы не можете изменять сами целевые классы. Сначала я подумал, что вы можете настроить сериализацию путем реализации методов readObject()
и writeObject()
, но это также потребует изменений в целевом классе.
В этом случае вам нужно будет работать с каким-либо API-интерфейсом на основе отражений или метаданных, чтобы сделать это. Существует множество библиотек, которые будут преобразовывать объекты в строки XML, JSON или DB и т. Д. И т. Д. Лучше всего использовать одну из них для преобразования объекта в «гидратированную» форму и из нее (и, вероятно, вам потребуется настроить ее). их, как и любой здравомыслящий сериализатор, будут игнорировать переходные поля). Какой из них выбрать, зависит от вашего текущего программного стека и ваших точных требований.