【发布时间】:2012-04-03 18:09:54
【问题描述】:
我有这门课
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];
}
}
但是当我尝试使用下面给出的一段代码将类的实例写入磁盘时
public static writeObj(WordObject obj)
FileOutputStream f_out = new FileOutputStream(loc);
// Write object with ObjectOutputStream
ObjectOutputStream obj_out = new ObjectOutputStream (f_out);
// Write object out to disk,obj is instance of wordObject
obj_out.writeObject ( obj );
我收到此错误
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 已经实现了可序列化。
【问题讨论】:
-
obj是wordObject类型的对象吗?错误说它来自searchTAemd -
这看起来完全可以序列化。你确定 obj 是 wordObject 的一个实例吗?
-
我刚刚用 obj = new wordObject("foo", 3); 测试了这个它可以正常工作... obj 必须引用另一种不可序列化的类型。
-
@HunterMcMillen 是的
obj是wordObject类型,searchTAemd是放置所有这些代码的类的名称。 -
变量
lineC从何而来?父类?
标签: java serialization