Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java可序列化NotSerializableException_Java_Serializable - Fatal编程技术网

java可序列化NotSerializableException

java可序列化NotSerializableException,java,serializable,Java,Serializable,我有一个NotSerializableException,jvm告诉我它来自一个类,它与序列化到ObjectOutputStream的内容完全无关 到底发生了什么事?它提到的问题类是不可序列化的,并且操纵来自其他类的一些数据,这些数据肯定是可序列化的,这到底为什么会导致notserializableeexception 编辑: 请不要否决这是一个严肃的问题! 好的,我只是想知道以下是否可能是一个问题:如果我有一个匿名的arraylist,被插入到一个映射中,(最确定的是可序列化的),在一个不可序

我有一个
NotSerializableException
,jvm告诉我它来自一个类,它与序列化到
ObjectOutputStream的内容完全无关

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

编辑: 请不要否决这是一个严肃的问题! 好的,我只是想知道以下是否可能是一个问题:如果我有一个匿名的arraylist,被插入到一个映射中,(最确定的是可序列化的),在一个不可序列化的类中,这会是问题吗


类似这样:map.put(new ArrayList(){{add(ect…}}});

字段也必须是可序列化的。一个问题是嵌套类有一个对其外部类的引用

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

 }
i、 你有一个你可能不知道的领域


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

什么是完整堆栈跟踪?您试图序列化什么对象(发布代码)?要序列化的类中的字段也必须是可序列化的。@山姆:如果没有关于代码的更多详细信息,除了你有bug之外,没有人可以说任何话。你可以从命令行复制/粘贴。请不要发布屏幕截图,每次有人这样做,上帝都会杀了一只小猫。你可以在适当的IDE中运行程序?NetBeans r将程序放在文本框中,您可以在其中复制/粘贴。我认为集合也是一个陷阱(因为集合本身只有在其存储的类型可序列化时才可序列化)奇怪的是,没有任何IDE自动检查类型是否可序列化。我想这就是问题所在,我有一个匿名arraylist,它是一种内部类的类型,位于一个不可序列化的类中,只是没有意识到如果在
静态
方法中创建匿名类(或将其移动到静态方法中)它不会有隐含的引用。