Java的:如果序列化的内部和匿名类的serialVersionUID了?(Java: Should

2019-08-17 17:32发布

虽然我不是目前正在计划连载什么,我给所有的序列化的外部类,以及静态嵌套类一个SerialVersionUID ,因为那是做的正确方法。

不过,我读过这里是

内部类(即嵌套类的非静态成员类),包括本地和匿名类的序列,是强烈反对的原因有几个。 ...

所以我的问题是:

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

是一种方法比另一种更合适?

我会在任何情况下作出这样的类的引用短暂的,因为我不希望他们被序列做。

Answer 1:

给他们的serialVersionUID,这是因为:

  • 这是很好的一般做法,它肯定不会伤害到指定。
  • 警告应该得到解决,而不是抑制。
  • 有时内部类更改为顶级类,当他们得到足够大。

这是很好的(对所有的文件中说明的理由,您已连接),你将不会被序列化的内部类的实例。 我想,如果你是偏执狂或者担心其他开发人员可能不锻炼一样良好的判断力,你可以通过具有强制执行的选择writeObject在无条件地抛出一个异常,每个内部类的方法。



文章来源: Java: Should serializable inner & anonymous classes have SerialVersionUID?