尽管我目前不打算序列化任何内容,但我为所有可序列化的外部类以及静态嵌套类提供了一个SerialVersionUID
,因为这是正确的方法。
不过,我读过here that
由于多种原因,强烈建议不要对内部类(即非静态成员类的嵌套类)(包括本地类和匿名类)进行序列化。 ...
所以我的问题是:
我应该给内部类和匿名类一个SerialVersionUID
每个,或者我应该添加一个@SuppressWarnings("serial")
对那些?
一种方式比另一种方式更合适吗?
无论如何,我都会暂时引用此类类,因为我不希望它们被序列化。
给他们一个serialVersionUID,因为:
- 这是很好的一般做法,指定它当然不会有什么坏处。
- 警告应该得到解决,而不是压制。
- 有时,当内部类变得足够大时,它们会被更改为顶级类。
最好(出于您所链接的文档中所述的所有原因)您不会序列化这些内部类的实例。我想,如果您偏执或担心其他开发人员可能不会做出同样的良好判断,您可以通过拥有writeObject
每个内部类中无条件抛出异常的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)