设计抽象类时是否应该考虑序列化问题?

2024-05-12

一般来说这个问题来自Eclipse建议在抽象类上添加串行版本UID。

由于该类是抽象类,因此该类的实例永远不会存在,因此它们永远不会被序列化(只有派生类才会被序列化)。

所以我的问题是放置一个安全@SuppressWarnings("serial")在抽象类上,谁的扩展程序将被序列化(并且它们将具有serialVersionUID)?

另外,在设计扩展器将被序列化的抽象类时需要注意的任何其他问题也是受欢迎的。

Thanks.


如果不是绝对需要(如果它没有状态),请不要使抽象类可序列化。您将需要终身维护类序列化形式,并为以前版本的序列化形式提供向后兼容性。但是您仍然需要提供一个无参数构造函数,以防扩展类自己实现 Serialized。

如果您决定实现 Serialized 接口,则需要抽象类上的串行版本 uid,否则当抽象类的新版本发布时,扩展类的序列化形式将被破坏。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设计抽象类时是否应该考虑序列化问题? 的相关文章

随机推荐

  • 如何找出当前正在运行的 PHP 可执行文件?

    在 PHP 程序内部 我想知道执行它的二进制文件的位置 Perl 有 X以此目的 PHP 中有等效的吗 这样它就可以使用自身执行子 PHP 进程 而不是硬编码路径或假设 php 是正确的 UPDATE 我使用的是lighttpd FastC
  • 启动客户端时,代码要求提供电话/机器人令牌

    使用 Telethon 库运行我的第一个代码时 它要求提供机器人令牌 这是实际的代码 from telethon import TelegramClient events sync api id 1234567 api hash xxxxx
  • pgAdmin 4 v3.0 查询工具初始化错误

    我最近买了一台新笔记本电脑并下载了 pgAdmin 4 v3 0 在此之前 我一直在运行 pgAdmin 4 v2 0 没有任何问题 但是 现在每当我尝试打开查询工具 仅通过下拉工具菜单 时 我都会收到错误消息 查询工具初始化错误 在最初的
  • jwplayer - 如何在播放前获取视频时长?

    我试图在 jwplayer 开始播放之前获取视频的持续时间 我尝试在onReady事件回调中调用getDuration 但它返回 1 当我在 onPlay 事件回调中调用 getDuration 时 我得到了正确的值 有任何想法吗 这是我的
  • 我应该使用多个 HttpClient 来进行批量异步 GET 请求吗?

    我有一个场景 我需要在尽可能短的时间内发出大量 GET 请求 想想大约 1000 个 我知道通常最好保留一个客户端并尽可能重用它 Create Single HTTP Client HttpClient client new HttpCli
  • 反转比例函数

    这对我来说很有趣 看下面的D3代码 var scale d3 scale linear domain 100 500 range 10 350 scale 100 Returns 10 scale 300 Returns 180 scale
  • Tensorflow `tf.layers.batch_normalization` 不会向 `tf.GraphKeys.UPDATE_OPS` 添加更新操作

    以下代码 复制 粘贴可运行 说明了如何使用tf layers batch normalization import tensorflow as tf bn tf layers batch normalization tf constant
  • 使用普通用户和 https 的 gitea

    我正在尝试设置 gitea 以使用 https 和我从 LetsEncrypt 获得的证书 运行该服务作为普通用户 我已经让它与普通用户在端口 80 上使用 http 一起工作git并使用 iptables 将端口 80 重定向到端口 30
  • 滚动视图下的iOS swift 4 imageview:双击缩小

    我已经应用了图像视图来通过捏合来放大 缩小 那很容易 当在图像视图上应用双击时 无法检测到选择方法 我使用 Xcode 9 和 swift 4 您能告诉我滚动视图是否应该应用双击手势吗 var previewImage UIImage ni
  • Facebook Javascript SDK - 查询个人资料图片

    我正在尝试通过 Javascript SDK 查询个人资料图片 I do 不想要图表 api 链接 我想得到src big link 我有以下代码 FB api me fields id name picture function resp
  • F# nameof 运算符不是一等函数

    我正在使用 F 4 7
  • Android 和 iPhone 应用程序可以使用同一个 Facebook 应用程序 ID 吗?

    我有两个具有相同名称和相同功能的应用程序 一款在安卓市场 一款在应用商店 目前仅通过 iPhone 应用程序 您可以使用我创建的 Facebook 应用程序将您的分数发布到 Facebook 墙上 我的问题是我可以使用相同的 Android
  • 列的 SQL MAX(包括其主键)

    Short 从下面的 sql select 中 我获取了 cart id 和该购物车中最高价值商品的值 SELECT CartItems cart id MAX ItemValues value FROM CartItems INNER J
  • Listview里面只有一个Element

    您好 我正在尝试将列表视图放入列表视图中的列表视图中 唯一的问题是只有第一个列表视图正确显示所有元素 此后的每个列表视图仅包含一个元素 UPDATE 创建我自己的不可滚动列表视图解决了这个问题 https stackoverflow com
  • 如何终止 Websocket 连接?

    如何终止 Websocket 连接 我不是在谈论关闭两端的连接 而是在 中间 中断它 我需要测试重新连接时必须发生的一些应用程序逻辑 通过 SocketIO 处理 不 拔掉网络电缆不算数 因为我无法在单元测试中真正实现自动化 此外 我希望只
  • 编写 XSLT 分组

    我有一个简单的 XML 其中包含两个级别 标题和行 标签 例如
  • C 中什么函数可以替换字符串中的子字符串?

    给定一个 char 字符串 我想查找所有出现的子字符串并将其替换为备用字符串 我没有看到任何简单的函数可以实现这一点
  • 在运行时用Dagger添加Retrofit RequestInterceptor

    我正在使用匕首和改装 我用 Dagger 注入我的 Retrofit 服务 现在我想做一个授权请求来获取 accessToken 之后 我想使用请求拦截器来增强我的 api 模块 以便将此访问令牌用于将来的请求 我的想法是在收到访问令牌后使
  • Jenkins 管道和 java.nio.file.* 方法的问题

    我正在尝试使用 java nio file 中的方法在 Jenkins 管道中执行一些基本文件操作 无论代码存在于哪个节点块中 代码都在主节点上执行 在管道中 我已经验证了各个节点块都是正确的 它们唯一地标识了特定的节点 但是 pathEx
  • 设计抽象类时是否应该考虑序列化问题?

    一般来说这个问题来自Eclipse建议在抽象类上添加串行版本UID 由于该类是抽象类 因此该类的实例永远不会存在 因此它们永远不会被序列化 只有派生类才会被序列化 所以我的问题是放置一个安全 SuppressWarnings serial