Java:可序列化内部类和匿名类是否应该具有 SerialVersionUID?

2023-12-04

尽管我目前不打算序列化任何内容,但我为所有可序列化的外部类以及静态嵌套类提供了一个SerialVersionUID,因为这是正确的方法。

不过,我读过here that

由于多种原因,强烈建议不要对内部类(即非静态成员类的嵌套类)(包括本地类和匿名类)进行序列化。 ...

所以我的问题是:

我应该给内部类和匿名类一个SerialVersionUID每个,或者我应该添加一个@SuppressWarnings("serial")对那些?

一种方式比另一种方式更合适吗?

无论如何,我都会暂时引用此类类,因为我不希望它们被序列化。


给他们一个serialVersionUID,因为:

  • 这是很好的一般做法,指定它当然不会有什么坏处。
  • 警告应该得到解决,而不是压制。
  • 有时,当内部类变得足够大时,它们会被更改为顶级类。

最好(出于您所链接的文档中所述的所有原因)您不会序列化这些内部类的实例。我想,如果您偏执或担心其他开发人员可能不会做出同样的良好判断,您可以通过拥有writeObject每个内部类中无条件抛出异常的方法。

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

Java:可序列化内部类和匿名类是否应该具有 SerialVersionUID? 的相关文章

  • 如何自定义 WCF 在序列化合约方法参数时采用的流程?

    我想设计一个人为的场景 但它有坚实的实际基础 想象一个集合类型 COuter 它是另一个集合类型 CInner 的实例的包装器 两者都实现了 IList 不用管 T 此外 COuter 实例隐藏在某个对象图内 其根 我们将其称为 R 是从
  • Hibernate OneToMany 关系是 PersistentBag 而不是 List

    我正在 javafx 中开发一个应用程序 它通过 RMI 与 EAR 连接 该 EAR 连接到 SQLServer DB 并使用 hibernate 映射 POJOS 这些 POJOS 包含双向 OneToMany 和 ManyToOne
  • 如何读取 C# 字符串字典并将其写入文件?

    我有一个 Dictionary 对象 我想写入磁盘并能够从磁盘读取它 理想情况下 我会避免使用任何第三方库 有没有一种简单的方法可以使用常规 C 4 来做到这一点 答案已接受 Summary 选项 1 使用 JavaScriptSerial
  • V8 如何管理它的堆?

    我知道V8的垃圾收集在工作时 会从GC的root开始追踪 这样无法到达的对象就会被标记然后被清除 我的问题是GC是如何遍历那些对象的 必须有一个数据结构来存储所有可达或不可达的对象 位图 链接表 顺便说一句 JVM 也做同样的事情吗 艾伦秀
  • JPanel透明背景和显示元素[重复]

    这个问题在这里已经有答案了 我插入一个背景图e 变成 aJPanel但一些界面元素消失了 以下 Java Swing 元素不会出现 标签标题 标签 usuario 标签 密码 按钮加速器 你能否使图像透明或元素不透明 setOpaque f
  • Java Swing:清除JList而不触发监听器

    我的情况如下 我有一个 JList 只要在列表中进行选择 它就会触发搜索 使用 ListSelectionListener 我正在尝试使用以下命令重置列表上的选择list clearSelection 这样做的问题是使用clearSelec
  • 在气球内显示带有照片的多个地标的最佳做法是什么?

    我有一个项目如下 从手机上拍摄几张照片 将照片保存在网络系统中 然后将照片显示在其中的谷歌地球上 我读过很多文章 但它们都使用 fetchKml 我读过的一篇好文章是使用 php 但使用 fetchKml 我不知道是否可以使用 parseK
  • 如何正确配置Tomcat SSLHostConfig?

    我正在按照本教程在 tomcat 中启用 ssl https medium com raupach how to install lets encrypt with tomcat 3db8a469e3d2 https medium com
  • Maven 多模块项目结构问题

    自从过去几周构建我的 Maven 多模块项目以来 这是我的一次有趣的经历 当我决定使用 Maven 进行构建生命周期管理时 我有几个原因希望选择 Maven A 大多数开发团队都是分开的 这样每个团队都可以在项目中的单独模块上工作 例如团队
  • 如何消除警告:使用“$”而不是“.”对于 Eclipse 中的内部类

    我是 Android 开发新手 当我将 eclipse 和 Android SDK 更新到最新版本后 我收到警告 Use instead of for inner classes or use only lowercase letters
  • 在 Spring 中设置 WS https 调用超时 (HttpsUrlConnectionMessageSender)

    我正在尝试为 WS 调用设置超时 我延长了WebServiceGatewaySupport并尝试将发送者超时设置为如下 public Object marshalSendAndReceive Object requestPayload We
  • 如何使用 Java 原生接口从 Java 调用 Go 函数?

    可以通过以下方式调用 C 方法JNA https en wikipedia org wiki Java Native AccessJava 中的接口 如何使用 Go 实现相同的功能 package main import fmt impor
  • 当容器大小更改时,JTable 仅调整选定列的大小

    对于面板内的 JTable 如果面板变大 我如何将额外的空间仅分配给某些列 在我的例子中 分配给最后一列 尽管提供 第 3 4 列和8 将获得额外的空间 我想允许用户手动更改所有列的列大小 我尝试了 table setAutoResizeM
  • 字节码和位码有什么区别[重复]

    这个问题在这里已经有答案了 可能的重复 LLVM 和 java 字节码有什么区别 https stackoverflow com questions 454720 what are the differences between llvm
  • 哪种 Java DOM 包装器是最好或最受欢迎的? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 用 Java 创建迷宫求解算法

    我被分配了用 Java 创建迷宫求解器的任务 这是任务 Write an application that finds a path through a maze The maze should be read from a file A
  • 如何计算文件中单词的长度?爪哇

    我正在尝试编写一个代码来计算文件中特定长度的单词数 例如 How are you 会打印 Proportion of 3 letter words 100 3 words 我想计算长度为 1 2 3 4 5 6 7 8 9 10 11 12
  • Mule/码头设置

    我有一个正在运行的 Mule 应用程序 我想在其上设置 Jetty 来响应 http 请求 以下配置
  • 防止 Firebase 中的待处理写入事务不起作用

    我的目标是在单击按钮时将名称插入 Cloud Firestore 中 但如果用户未连接到互联网 我不希望保存处于挂起状态 我不喜欢 Firebase 保存待处理写入的行为 即使互联网连接已恢复 我研究发现Firebase 开发人员建议使用事
  • 如何在Java中跨类共享变量,我尝试了静态不起作用

    类 Testclass1 有一个变量 有一些执行会改变变量的值 现在在同一个包中有类 Testclass2 我将如何访问 Testclass2 中变量的更新值 由 Testclass1 更新 试过这个没用 注意 Testclass1和Tes

随机推荐

  • 来自数据库结果的 PHP 多维数组

    我对多维数组有点陌生 想看看我做得是否正确 最好 我想在主数组中命名数组以便于使用 unique array array username gt array user id gt array weeknumber gt array 然后我有
  • 使用 jquery 突出显示选定的文本

    当用户选择 html 页面中的任何文本时 我想添加自定义样式 例如color red 到它 这将充当突出显示工具 类似于您在某些用于阅读 pdf 文件的应用程序中看到的工具 为此我声明highlight 获取所选文本及其位置的函数 func
  • 如何以如下形式创建对象:ifstream in();

    我是 C 初学者 我见过好几次创建对象时 如下所示 class name object name 之后 您可以将 object name 引用为该类的对象 我怎样才能在课堂上做到这一点 我应该重写构造函数吗 以及如何做到这一点 这行代码可能
  • 在模型挂钩后设置控制器属性

    我需要在之后设置一个控制器属性model钩 我可以想到两种方法来做到这一点 model params return this store findRecord user 1 afterModel model transition model
  • Eclipse Maven Spring:当我尝试作为服务器运行时出现服务器错误 (Tomcat 7)

    我有一个 Java 项目 使用春季MVC框架和Maven作为其构建系统 我希望使用的主要 IDE 是用于 Java EE 的 Eclipse 我的应用程序使用标准 Maven 项目结构 源代码位于src main java 应用程序的资源位
  • 将 JSON 发布到 MVC 控制器 - 字符串参数为 null

    我故意尝试不在控制器参数中使用绑定 因此我有一个如下所示的控制器 HttpPost public ActionResult UntypedForm String serializedformdata 当我使用以下代码将序列化的 JSON 表
  • TCP 服务器接收到的数据比预期多

    我有一个服务器客户端应用程序 其中客户端将图像数据流式传输到服务器 我有以下结构 Client private void SerializeAndSendMessage Message msg BinaryFormatter formatt
  • 如何在 SSRS 子报表中填充数据集?

    这看起来应该是微不足道的 但我遇到了困难 我有一个主要报告 我一直在填充数据集 如下所示ReportViewer aspx cs ReportViewer LocalReport ReportPath SummaryReport rdlc
  • 使用 coord_flip 反转分组条形图中条形的顺序

    使用来自的代码here 我意识到了一些我不明白的事情 library ggplot2 LoTRdata lt structure list Film structure c 1L 1L 1L 1L 1L 1L 3L 3L 3L 3L 3L
  • 查找Python包中某些方法和函数的所有用法

    给定一个包含某些模块的Python包 我想找到该包中定义的方法和函数的所有用法 我在想像 pycharms 这样的东西查找用法 其中给定一个函数或方法 它会显示调用该方法 函数的所有行 假设我的包有很多模块 我想查找中定义的函数和方法的用法
  • 在 Swift 中使用 where 子句扩展数组类型

    我想使用 Accelerate 框架来扩展 Float 和 Double 但每个都需要不同的实现 我尝试了显而易见的方法 extension Array
  • 处理方向变化的状态

    如何处理发生的方向事件的所有状态 就像是 开始之前 保存一些屏幕状态 发生时 动画目的 发生后 加载屏幕状态 我知道配置更改时可以处理方向变化 我尝试了这个 public void onConfigurationChanged Config
  • Windows 窗体:具有多列的 TreeView 控件

    有没有办法在 TreeView 控件中拥有多个列 不 标准 TreeView 不允许列 您正在寻找的通常称为 TreeListView 所以你需要一个自定义控件 CodeProject 上列出了很多 TreeListView 用户控件 精简
  • 从 Struts2 表单提交填充集合

    我正在尝试从表单填充 bean 列表 public class Foo public String attr1 public String attr2 public class Bar public List
  • 是否可以从 scala 宏内的 WeakTypeTag 生成 Apply ?

    我有一个WeakTypeTag我的宏中的某种类型 我想生成如下代码 macroCreate SomeObject gt SomeObject 1 宏的定义将是这样的 def macroCreate A macro macroCreate A
  • 错误:连接超时:连接 - Android

    所以我只是安装了 Android studio 并运行了 Hello World 基本应用程序 然后我得到这个错误 错误 连接超时 连接 我尝试从我的中删除 gradleUSER文件夹 没有帮助 非常感谢任何帮助 谢谢 将android s
  • 如何从源代码中混淆的 ProGuard 类名中找到真实的类名?

    我收到一封来自 Google 的电子邮件 内容涉及TrustManager 的不安全实现唯一的线索表明有问题的代码位于 com b a af 类中 显然这是一个混淆的名字 我如何在我自己的源代码中从混淆的类名中获取真实的类名 有什么方法可以
  • 从 API 提取数据时的等待屏幕

    我创建了一个 Python 脚本来使用 API 下载数据 我还使用 PySimpleGUI 在其上放置了一个简单的 GUI 但是 在下载数据时 我想显示一个不确定的进度条或类似的东西 下载完成后它将自行退出 有没有办法实现这个要求呢 有两种
  • WPF 命令行

    我正在尝试创建一个采用命令行参数的 WPF 应用程序 如果未给出参数 则应弹出主窗口 对于某些特定的命令行参数 代码应在没有 GUI 的情况下运行 并在完成后退出 任何有关如何正确完成此操作的建议将不胜感激 首先 在 App xaml 文件
  • Java:可序列化内部类和匿名类是否应该具有 SerialVersionUID?

    尽管我目前不打算序列化任何内容 但我为所有可序列化的外部类以及静态嵌套类提供了一个SerialVersionUID 因为这是正确的方法 不过 我读过here that 由于多种原因 强烈建议不要对内部类 即非静态成员类的嵌套类 包括本地类和