Java 包含许多实现可怕且容易出错的 接口Serializable
的类(如 Swing 中的类) 。
例如,如果您TableModel
通过扩展实现 new AbstractTableModel
,则新模型必须是可序列化的,但如果它包含不可序列化的内部数据类型,并且由于您不打算使用此功能而不必序列化,该怎么办?
在这种情况下,Sonar之类的工具会发疯。要么抱怨“类Foo
定义了非瞬态不可序列化的实例字段bar
”。
所以我制作那个字段transient
只是为了得到“该字段Foo.bar
是瞬态的,但不是由反序列化设置的”
是否可以说“不,这个类不可序列化,我不希望它是”,这样您就不会在像 Sonar 这样的工具中出现任何错误?