我有一个NotSerializableException
,jvm告诉我它来自一个与序列化到ObjectOutputStream
的内容完全无关的类!
到底是怎么回事?它提到的类是不可序列化的,并且操作来自OTHER类的一些数据,这些数据绝对是可序列化的,为什么这会产生NotSerializableException
?
编辑: 请不要投票,这是一个严肃的问题! 好的,所以我只是想知道以下是否可能是一个问题:如果我有一个匿名的arraylist,插入到一个地图中,(绝对是可序列化的),在一个不可序列化的类中,这可能是问题????
像这样:map.put(new ArrayList(){{add(ect ....}});答案 0 :(得分:4)
字段也必须是Serializable。一个问题是嵌套类具有对其外部类的引用。
class NotSerializable {
class Inner implements Serializable {
// contains a reference to this$0, the outer instance
}
}
即。你有一个你可能不知道的领域。
简单的解决方案是创建内部类static