java - 使类可序列化有什么用?

标签 java json rest serialization pojo

  1. 我注意到许多库类“ArrayList”、“String”甚至异常(exception)都有一个 serialVersionUID。他们为什么要这样做。这样做的实际用途是什么。仅供引用,我熟悉序列化的概念。请指出它的实际用途。

供您引用查找 ClassCastException 的 serialversionUid

public class ClassCastException extends RuntimeException {
private static final long serialVersionUID = -9223365651070458532L;

这些对象的状态将持续到哪里?这些对象状态将在哪里被检索?

  1. 我目前在一个项目中工作,我们正在制作 REST Controller ,其输入和输出参数将为 JSON。我们正在为 i/p 和 o/p 参数创建简单的 POJO。我看到有人使这些 POJO 可序列化。什么这样做的意义所在?

但是我还没有看到**out.readObject**或者out.writeobject是用来读写对象状态的使其可序列化?如果是,它将存储在哪里?

最佳答案

如果您想要完整的故事,请阅读规范:Java Object Serialization Specification .

[...] many of the library classes "ArrayList", "String" even the exceptions are having a serialVersionUID. Why they have made it like this.

在读取用旧版本类编写的对象时支持向后兼容性。参见 Stream Unique Identifiers .

Where these object's state going to persist?

无论您决定在哪里。参见 Writing to an Object Stream .

And where will these objects state going to be retrieved ?

无论你把它放在哪里。参见 Reading from an Object Stream .

[...] input and output parameters will be JSON. [...] I have seen people making those POJOs serializable. Whats the point in doing that ?

没有。 JSON 没有使用 Java 序列化。 Java 序列化创建一个二进制流。 JSON 创建文本。

Will the POJO's state persist just making it serializable? If yes where it will be stored?

不,见上文。

关于java - 使类可序列化有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37649020/

相关文章:

java - 如何设置基本的 Jersey/Grizzly 2.21 SSL 启动配置

php - 401 Unauthorized DELETE request to RESTful API 通过 Ajax 在 laravel 中

java - 非法访问错误 : accessing a protected method

java - 测试 Set 和 Get 方法但不起作用

php - Guzzle 且无法将响应解析为 JSON

iphone - 在 JSON 中发布用户名和密码

java - 如何在 Java 11 中调用 schemagen?

java - 在 spring-boot 中为 Graphite 千分尺事件添加前缀

javascript - PHPSESSID从B域到A域在Chrome和Firefox上使用,而不是在Safari和IE上使用

java - RestTemplate.postForObject - 错误 : org. springframework.web.client.HttpClientErrorException:400 错误请求