【发布时间】:2012-03-13 18:06:37
【问题描述】:
我有以下课程:
import java.awt.Color;
import java.util.Vector;
public class MyClass {
private ImageSignature imageSignature;
private class ImageSignature implements Serializable {
private static final long serialVersionUID = -6552319171850636836L;
private Vector<Color> colors = new Vector<Color>();
public void addColor(Color color) {
colors.add(color);
}
public Vector<Color> getColors() {
return colors;
}
}
// Will be called after imageSignature was set, obviously
public String getImageSignature() {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(imageSignature);
oos.close();
return String(Base64Coder.encode(baos.toByteArray()));
}
}
当我尝试拨打getImageSignature() 时,我收到了NotSerializableException - 这是为什么呢?所有成员都是可序列化的,为什么会出现这个错误?
【问题讨论】:
-
颜色是 java.awt.Color 类型的吗?
-
java.awt.Color和java.util.Vector -
测试了你的代码,它没有任何问题。您是否在启动前清理并重建了整个项目?
-
我也无法重现这个。您能否提供一个完整的、可运行的示例来演示该问题?
-
好吧,我想我在省略外部类时犯了一个错误……我更新了问题,也许现在它更有意义了?
标签: java class serialization object serializable