精简版:
serialVersionUID 最合适的访问修饰符是什么?Eclipse 默认为私有,但将其设置为更可见的有什么问题吗?
背景:
我正在编写一个大量扩展 ArrayList 的库。如果我没有在序列化类中包含 serialVersionUID,我希望 Eclipse 发出警告。我还希望编译器在遇到没有 javadoc 注释的字段时发出警告。最后,我希望编辑器删除未使用的未使用字段。
所以为了实现这一点,我将我的类主体模板设置为此
/**
* Generated Serial Version UID
*/
public static final long serialVersionUID=7707109240879740918L;
serialVersionUID 的值只是我硬编码到模板中的任意选择的随机数。
该字段是公开的,以解决“未使用的变量问题”。
该字段有一个硬编码的注释来解决未注释字段的问题。
是的,我知道这很挑剔,但我是一个懒惰的完美主义者,不想每次都手动添加那个serialVersionUID并自己写评论。
可悲的是,我不能指定仅适用于序列化类的特定类型的类模板,也不能指定特定于字段 serialVersionUID 的模板,因此需要对其全部进行硬编码并设置为非私有以避免编译器抱怨关于在我清理源代码时缺少注释和编辑器删除未使用的值。
无论出于何种原因,我是否通过将 serialVersionUID 设置为私有以外的任何内容,在此类中引入了潜在的错误或漏洞?