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