Java 类实现可序列化的对象的notserializableexception

Java 类实现可序列化的对象的notserializableexception,java,serialization,Java,Serialization,我有这门课 public class wordObject implements java.io.Serializable { String wordName; int occCount; int count; HashMap<Integer, Double> lineDict; int[] mat; public wordObject(String name,int num)

我有这门课

public class wordObject implements java.io.Serializable
    {
        String wordName;
        int occCount;
        int count;
        HashMap<Integer, Double> lineDict;
        int[] mat;

        public wordObject(String name,int num)
        {
            wordName = name;
            occCount=1;
            count = num;
            lineDict=new HashMap<Integer,Double>(lineC);
            mat = new int[lineC];

        }

    }
我得到这个错误

Exception in thread "main" java.io.NotSerializableException: searchTAemd
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
欢迎任何帮助


编辑:我已检查HashMap是否已实现可序列化。

执行序列化时,对象可以访问的所有对象(即其成员变量及其成员的成员等)都必须可序列化,否则会出现此异常。这是对象序列化的常见问题

因为
wordObject
是一个内部类,并且内部类始终包含对其外部类的隐式引用,所以除非外部类也可序列化,否则无法序列化内部类。实际上,甚至不建议尝试

内部类的序列化(即不是 静态成员类),包括本地类和匿名类 出于几个原因,我强烈地劝阻你。因为内部阶级 在非静态上下文中声明包含隐式非瞬态 引用封闭类实例,序列化此类内部 类实例将导致其关联外部对象的序列化 类实例


obj
wordObject
类型的对象吗?错误表明它来自
searchtaemad
这看起来完全可以序列化。你确定obj是wordObject的一个实例吗;它工作正常。。。obj必须引用另一个不可序列化的类型。@HunterMcMillen Yes
obj
属于
wordObject
类型,
searchTAemd
是放置所有代码的类的名称。变量
lineC
来自何处?父类?你说他的类的哪个部分是不可序列化的?从wordObject的类定义来看,所有字段都是可序列化的。
Exception in thread "main" java.io.NotSerializableException: searchTAemd
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)