在不实现 Serializable 接口的情况下对字段进行序列化

Field getting serialized without implementing Serializable interface

我有一个 java class 实现了 Serializable 接口。它具有 String、BigDecimal 和其他 java 可序列化的预定义类型。它还包括一个未实现 Serializable 的自定义 class。自定义类型也被序列化为 JSON。

但是有警告显示要么使其成为瞬态,要么使自定义类型实现可序列化。

即使类型没有实现 Serializable,它是如何序列化的?我应该忽略警告(SonarLint 消息)吗?

那是因为 Jackson 在 serializing/deserializing 时不使用 java.lang.Serializable 类型提示。杰克逊可以 serialize/deserialise 大多数 Java 类型。看看 com.fasterxml.jackson.databind.ser.stdcom.fasterxml.jackson.databind.deser.std。如果您使用 ObjectMapper,您可以像 guide.

中那样配置所需的功能

忽略警告取决于您的对象类型。例如,关于值类型序列化的讨论很好。

Why should Java's value-based classes not be serialized?