-4

我有一个NotSerializableException,jvm 告诉我它来自一个与序列化到ObjectOutputStream!

到底会发生什么?它作为问题提到的类是不可序列化的,并且操作了来自其他类的一些数据,这些数据绝对是可序列化的,为什么这会导致NotSerializableException

编辑:请不要投反对票,这是一个严肃的问题!好的,所以我只是想知道以下是否可能是一个问题:如果我有一个匿名数组列表,被插入到一个映射中(这绝对是可序列化的),在一个不可序列化的类中,这可能是问题吗???

像这样: map.put(new ArrayList(){{add(ect....}});

4

1 回答 1

4

字段也必须是可序列化的。一个问题是嵌套类引用了它们的外部类。

 class NotSerializable {
     class Inner implements Serializable {
         // contains a reference to this$0, the outer instance
     }

 }

即你有一个你可能不知道的领域。

简单的解决方案是使内部类static

于 2012-04-29T16:44:00.387 回答