- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果Serialized
类没有定义serialVersionUID
,则存在这样的风险:(!对于同一个类!)执行序列化的JVM将计算出与执行序列化的JVM不同的版本反序列化。推荐的解决方案是使用 serialver
工具计算版本 ID 并手动放入源代码中。
恕我直言,这很愚蠢。如果源代码中没有定义,javac
自动计算serialVersionUID并放入字节码会更好。
编译时自动计算是否存在任何可能的问题?
我知道有类似编译器插件javac -Xplugin
的东西。是否可以创建实现自动化的插件?或者也许这样的插件已经创建了?
请不要向我提供 Why isn't the serialVersionUID automatically generated? 的虚假重复项讨论了不同版本的类兼容序列化的情况。我感兴趣的情况是,同一个类应该总是通过序列化,而不同版本的类应该失败。
最佳答案
因为ObjectInputStream
和 friend 们这样做了。它不属于编译器的功能,即使存在也不能解决任何问题。编译器不能做任何与已经完成的事情不同的事情。
I'm interested in a case when the same class is expected to always pass serialization and different versions of class should fail.
这种情况已经有效。无需解决方案。
关于java - 为什么编译器不自动设置serialVersionUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29081134/
这个问题已经有答案了: What is a serialVersionUID and why should I use it? (25 个回答) 已关闭 6 年前。 您好,我有一个关于 SerialV
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
我在java中使用序列化类,在这些类中我需要指定serialVersionUID和一些要初始化的长数字。默认情况下为 private static final long serialVersi
public static List abc = new ArrayList(){{ //Asks for SerialVersionUID abc.add(5L);
我目前正在编写一个项目,其中有一个可序列化的类 ClientRepository。该类不指定任何serialVersionUID。当我尝试运行我的程序时,出现以下异常: Exception in
这是我试过的: 我使用 -Xlint:serial 选项构建项目,但收到此警告: MyClass.java:42: warning: [serial] serializable class has
在我的 Java 程序中添加文档时,我意识到大多数类都需要声明一个 serialVersionUID 常量属性。我究竟应该如何记录这个属性?如果我使用默认与生成的串行版本 UID,我是否会以不同的方式
我在一篇文章中看到,JVM默认提供的serialVersionUid是一个对象的hashcode。如果我们不重写类中的hashcode方法,通常hashcode是对象的内存地址,反序列化时如何计算ha
我正在尝试开发我的个人图书馆类(class),但遇到了障碍。我的实用程序类包含静态方法和常量,以及用于各种数据结构和子实用程序的几个公共(public)内部类。这些类不是静态嵌套类,它们旨在被实例化、
我已经阅读了一些有关 Java 如何控制对可序列化对象的访问的问题和讨论。我的问题是关于外部化对象以及为什么serialVersionUID应该影响它。我期望答案是“因为Externalized接口(
这个问题在这里已经有了答案: 关闭10 年前。 Possible Duplicate: What does it mean: The serializable class does not decl
serialVersionUID 字段未命名为 SERIAL_VERSION_UID 是否有任何可行的原因? 根据 java.io.Serializable 的文档: A serializable c
当我在 Eclipse 中创建实现 Serializable 接口(interface)的 Java 类时,我收到警告 The serializable class ABCD does not dec
这个问题在这里已经有了答案: What is a serialVersionUID and why should I use it? (25 个答案) 关闭 9 年前。 在我的采访中,我有一个问题如
这个问题在这里已经有了答案: What is a serialVersionUID and why should I use it? (25 个答案) 关闭 4 年前。 如果我改变这个方法: pub
如果我实现 Externalizable,我是否需要在该类中指定 serialVersionUID 以实现版本兼容性? 换句话说,Java 在反序列化 Externalizable 对象时是否检查 s
我是 java 的新手,我有一个 Products 类,它是 Serializable。我不知道我做了什么,但我的程序停止工作并给了我这个错误: Exception in thread "main"
这个问题在这里已经有了答案: What is a serialVersionUID and why should I use it? (25 个答案) 关闭 9 年前。 每当我们尝试 seriali
我遇到了一个扩展异常的异常处理程序类,如下所示: public class AppFileReaderException extends Exception { //Explicit seri
如果我为我的类编写了一个 serialversionUid,比如 1234,并且我知道我的程序中没有其他类使用它,这样好吗,还是我总是必须使用编译器生成的 uid? 最佳答案 serialVersio
我是一名优秀的程序员,十分优秀!