Нет, это не обязательно. Gson использует отражение, чтобы произвести желаемое json. Вы должны реализовать Serializable
, когда:
- сохранить на диске
- отправить его через сокет как объект
Например, если у вас есть веб-приложение, развернутое в HA на двух или более узлах в кластере (затем они обмениваются сеансами друг с другом), и вы используете область сеанса для сохранения аутентификации пользователя, компонент, содержащий эту информацию, должен быть сериализуемым.
Если вы решили использовать Serializable
добавить serialVersionUID
. Это долго используется JVM для уникальной идентификации самого объекта.
Когда вы не разделяете его, компилятор добавляет сгенерированный (который поэтому зависит от компилятора), и эта идентичность изменяется, когда Вы меняете свой объект, например, добавляя поле; это означает, что после минимального изменения не следует десериализовать объекты, сериализованные до изменения.