虽然我目前不打算序列化任何东西,但我给所有可序列化的外部类以及静态嵌套类a SerialVersionUID
,因为这是正确的方法。
但是,我已经阅读了here
由于多种原因,强烈建议不要对内部类(即非静态成员类的嵌套类)进行序列化,包括本地类和匿名类。 ...
所以我的问题是:
我应该为内部和匿名课程分别提供SerialVersionUID
,还是应该为这些课程添加@SuppressWarnings("serial")
?
一种方式比另一方更合适吗?
在任何情况下,我都会引用这些类的瞬态,因为我不希望它们被序列化。
答案 0 :(得分:4)
给他们一个serialVersionUID,因为:
很好(由于您链接的文档中陈述的所有原因)您不会序列化这些内部类的实例。我想,如果你是偏执或担心其他开发人员可能不会做出同样好的判断,你可以通过在每个内部类中使用writeObject
方法无条件地抛出异常来强制执行该选择。