使用GSON序列化为JSON的类是否应实现可序列化接口

bn31dyow  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(305)

我有一个POJO,它正在使用new Gson().toJson(entity)序列化为JSON。我应该在这个POJO上实现可序列化接口吗?

@Data
public class BankcodeJSONEntity {

    @NotNull
    @Size(min = 8, max = 8)
    private String bankcode;
    @NotNull
    @Size(min = 11, max = 11)
    private String bic;
    @NotNull
    private String ticket;

    @Basic
    @Temporal(TemporalType.DATE)
    @NotNull
    private Date date;
    @NotNull
    private String category;
    @NotNull
    private String name;

}
5f0d552i

5f0d552i1#

不,这不是必需的。Gson使用反射来产生所需的json。在以下情况下,您应该实现Serializable
1.将其保存在磁盘上
1.通过套接字将其作为对象发送
例如,如果在集群中的两个或多个节点上的HA中部署了一个Web应用程序(然后这些节点相互交换会话),并且使用会话范围保存用户身份验证,则包含此信息的Bean必须是可序列化的。
如果您决定使用Serializable,请添加serialVersionUID。这是JVM使用的long,用于以唯一的方式标识对象本身。
当你不指定它时,编译器会添加一个生成的标识(因此它依赖于编译器),当你改变对象时,这个标识也会改变,例如添加一个字段;这意味着在最小的更改之后,您不应该反序列化在更改之前序列化的对象。

相关问题