Serializable如何工作?

Jon*_*tre 3 java serializable

这个问题不是关于如何使用 Serializable,我已经知道了.但是,我想知道如何实现Serializable提出以下警告:

The serializable class MyClass does not declare a static final serialVersionUID field of type long

假设我想编写一个接口Serializable,我将如何"警告"程序员实现我的接口来声明变量?我已经尝试查看源代码,Serializable.java但我找不到任何会导致此行为的内容.这甚至可能吗?

谢谢!

Ósc*_*pez 5

我认为使用注释和注释处理器可以更好地实现您正在寻找的行为.编译器警告您不要声明的事实serialVersionUID由编译器级别的不同机制处理(因此,程序员无法访问); 它更像是序列化API强制执行的编码约定,而不是实现Serializable接口的结果.

实际上,在这里你可以检查源代码,Serializable正如你所看到的,强制编译器警告并没有什么特别之处:

/* comments removed for brevity */
package java.io;
public interface Serializable {
}
Run Code Online (Sandbox Code Playgroud)